aerospot-autoreport


Nameaerospot-autoreport JSON
Version 0.4.2 PyPI version JSON
download
home_pageNone
SummaryAeroSpot自动化报告生成工具
upload_time2025-07-09 10:59:01
maintainerNone
docs_urlNone
authorNone
requires_python>=3.10
licenseMIT
keywords report generator docx automation remote sensing
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # AeroSpot AutoReport 项目

AeroSpot AutoReport 是一个用于处理航测数据并生成水质分析报告的工具。项目经过模块化重构,消除了重复定义,提升了可维护性和结构清晰度。各功能模块职责单一,便于扩展和维护。

## 系统要求

- **Python**: >= 3.10 (推荐 3.11)
- **操作系统**: Windows, Linux, macOS
- **内存**: 建议 4GB 以上
- **硬盘**: 建议 1GB 可用空间

### Python版本支持
- ✅ **Python 3.11** (推荐版本)
- ✅ **Python 3.10** (最低版本)
- ✅ **Python 3.12** (最新版本)

## 快速安装

### 用户安装 (推荐)
```bash
# 完整功能安装 (包含水印功能,自动适配平台)
pip install aerospot-autoreport
```

### 开发环境安装
```bash
# 开发环境 (完整功能 + 开发工具)
pip install aerospot-autoreport[dev]
```

### 从源码安装
```bash
git clone https://github.com/1034378361/AutoReportV2.git
cd AutoReportV2
pip install -e .
```

## 安装选项说明

### 两种安装方式
1. **用户安装**: 完整功能 + 智能平台适配
2. **`[dev]`**: 用户功能 + 开发工具(测试、代码质量)

### 智能平台适配
所有安装方式都使用条件依赖,自动根据操作系统安装合适的依赖:

| 平台 | pywin32安装 | Windows目录更新功能 |
|------|-------------|-------------------|
| **Windows** | ✅ 自动安装 | ✅ 完全支持 |
| **Linux** | ❌ 自动跳过 | ❌ 不支持 |
| **macOS** | ❌ 自动跳过 | ❌ 不支持 |

### 功能对比
| 功能 | 用户安装 | [dev] |
|------|----------|-------|
| 报告生成 | ✅ | ✅ |
| 数据处理 | ✅ | ✅ |
| 图表生成 | ✅ | ✅ |
| 水印功能 | ✅ | ✅ |
| Windows目录更新 | 🔄 | 🔄 |
| 开发工具 | ❌ | ✅ |

🔄 = 自动平台适配:Windows支持,Linux/macOS不支持

## 项目结构

项目主要包含以下模块:

```
AeroSpotReportV2/
├── config/               # 配置模块(常量、样式、公司信息等集中管理)
│   ├── __init__.py
│   ├── constants.py      # 常量定义
│   ├── styles.py         # 样式配置
│   ├── company_info.py   # 公司信息配置
│   └── defaults.py       # 默认配置
├── utils/                # 工具模块(通用工具函数,去重整合)
│   ├── __init__.py
│   ├── text.py           # 文本处理工具(如is_chinese、is_numeric等)
│   ├── font.py           # 字体处理工具
│   ├── io.py             # 输入输出工具
│   ├── geo.py            # 地理计算工具
│   └── path.py           # 路径处理工具
├── document/             # 文档生成模块(报告样式、段落、表格、图片、页面等)
│   ├── __init__.py
│   ├── styles.py         # 文档样式
│   ├── paragraphs.py     # 段落生成
│   ├── tables.py         # 表格生成
│   ├── images.py         # 图像处理
│   └── pages.py          # 页面生成
├── processor/            # 数据处理模块
│   ├── data/             # 数据处理子模块
│   │   ├── __init__.py
│   │   ├── processor.py  # 数据处理核心
│   │   ├── standardizer.py # 数据标准化
│   │   ├── analyzer.py   # 数据分析
│   │   ├── matcher.py    # 数据匹配
│   │   └── utils.py      # 数据处理工具
│   ├── config.py         # 配置处理
│   ├── downloader.py     # 数据下载
│   ├── extractor.py      # 数据提取
│   └── maps.py           # 卫星图像与可视化地图生成
├── main.py               # 主程序入口
├── generator.py          # 报告生成器
├── error_handler.py      # 错误处理
├── log_config.py         # 日志配置
└── resource_manager.py   # 资源管理
```

## 主要功能

1. **数据处理**:
   - 从压缩文件中提取航测数据
   - 标准化数据列名和指标名称
   - 计算基本统计信息
   - 数据匹配和分析
   - 卫星图像与指标数据可视化(见processor/maps.py)

2. **报告生成**:
   - 生成专业的Word格式报告
   - 包含统计表格、分布图和分析结果
   - 自定义报告样式和内容

3. **数据可视化**:
   - 生成指标分布图、插值热力图、水质等级分布图
   - 支持卫星底图与自定义地理边界

## 安装使用

1. 克隆项目到本地:
   ```bash
   git clone https://github.com/1034378361/AeroSpotReportV2.git
   cd AeroSpotReportV2
   ```

2. 安装依赖:
   ```bash
   pip install -r requirements.txt
   ```

3. 配置环境变量:
   创建`.env`文件并设置必要的环境变量。

4. 运行程序:
   ```bash
   python main.py
   ```

## 配置说明

项目支持通过配置文件和环境变量进行配置。主要配置项包括:

- 公司信息配置
- 报告样式配置
- 数据处理参数配置
- 输出路径配置

详细配置说明请参考 `config/` 目录下的相关文件。

## 数据处理与可视化模块

- 数据处理模块(`processor/data/`)是项目的核心,负责处理航测数据和实测数据,主要功能包括:
  - 数据标准化:统一列名和指标名称
  - 数据匹配:将航测数据与实测数据进行匹配
  - 数据分析:计算统计信息,分析数据特征
  - 误差分析:分析原始航测数据和重新反演数据与实测数据的误差
- 地图与可视化模块(`processor/maps.py`)支持基于卫星图像和指标数据生成分布图、插值热力图和水质等级分布图。

## 模块化重构说明

- 本项目已完成配置、工具函数、文档生成等模块的结构化重构,消除了重复定义,提升了可维护性。
- 主程序(如`main.py`、`generator.py`)的导入路径更新与全局适配正在规划中。
- 详细重构计划见 `refactoring_plan.md`。

## 注意事项

- 项目需要Python 3.10或更高版本
- 部分功能需要授权才能使用
- 请确保输入数据格式符合要求 

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "aerospot-autoreport",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": null,
    "keywords": "report, generator, docx, automation, remote sensing",
    "author": null,
    "author_email": "Zhou Yuanqi <zyq1034378361@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/50/00/981b8ae9c96c67c4373d7522e24e4b34eb08a1641dc5b3742fdf89d4ab7e/aerospot_autoreport-0.4.2.tar.gz",
    "platform": null,
    "description": "# AeroSpot AutoReport \u9879\u76ee\n\nAeroSpot AutoReport \u662f\u4e00\u4e2a\u7528\u4e8e\u5904\u7406\u822a\u6d4b\u6570\u636e\u5e76\u751f\u6210\u6c34\u8d28\u5206\u6790\u62a5\u544a\u7684\u5de5\u5177\u3002\u9879\u76ee\u7ecf\u8fc7\u6a21\u5757\u5316\u91cd\u6784\uff0c\u6d88\u9664\u4e86\u91cd\u590d\u5b9a\u4e49\uff0c\u63d0\u5347\u4e86\u53ef\u7ef4\u62a4\u6027\u548c\u7ed3\u6784\u6e05\u6670\u5ea6\u3002\u5404\u529f\u80fd\u6a21\u5757\u804c\u8d23\u5355\u4e00\uff0c\u4fbf\u4e8e\u6269\u5c55\u548c\u7ef4\u62a4\u3002\n\n## \u7cfb\u7edf\u8981\u6c42\n\n- **Python**: >= 3.10 (\u63a8\u8350 3.11)\n- **\u64cd\u4f5c\u7cfb\u7edf**: Windows, Linux, macOS\n- **\u5185\u5b58**: \u5efa\u8bae 4GB \u4ee5\u4e0a\n- **\u786c\u76d8**: \u5efa\u8bae 1GB \u53ef\u7528\u7a7a\u95f4\n\n### Python\u7248\u672c\u652f\u6301\n- \u2705 **Python 3.11** (\u63a8\u8350\u7248\u672c)\n- \u2705 **Python 3.10** (\u6700\u4f4e\u7248\u672c)\n- \u2705 **Python 3.12** (\u6700\u65b0\u7248\u672c)\n\n## \u5feb\u901f\u5b89\u88c5\n\n### \u7528\u6237\u5b89\u88c5 (\u63a8\u8350)\n```bash\n# \u5b8c\u6574\u529f\u80fd\u5b89\u88c5 (\u5305\u542b\u6c34\u5370\u529f\u80fd\uff0c\u81ea\u52a8\u9002\u914d\u5e73\u53f0)\npip install aerospot-autoreport\n```\n\n### \u5f00\u53d1\u73af\u5883\u5b89\u88c5\n```bash\n# \u5f00\u53d1\u73af\u5883 (\u5b8c\u6574\u529f\u80fd + \u5f00\u53d1\u5de5\u5177)\npip install aerospot-autoreport[dev]\n```\n\n### \u4ece\u6e90\u7801\u5b89\u88c5\n```bash\ngit clone https://github.com/1034378361/AutoReportV2.git\ncd AutoReportV2\npip install -e .\n```\n\n## \u5b89\u88c5\u9009\u9879\u8bf4\u660e\n\n### \u4e24\u79cd\u5b89\u88c5\u65b9\u5f0f\n1. **\u7528\u6237\u5b89\u88c5**: \u5b8c\u6574\u529f\u80fd + \u667a\u80fd\u5e73\u53f0\u9002\u914d\n2. **`[dev]`**: \u7528\u6237\u529f\u80fd + \u5f00\u53d1\u5de5\u5177(\u6d4b\u8bd5\u3001\u4ee3\u7801\u8d28\u91cf)\n\n### \u667a\u80fd\u5e73\u53f0\u9002\u914d\n\u6240\u6709\u5b89\u88c5\u65b9\u5f0f\u90fd\u4f7f\u7528\u6761\u4ef6\u4f9d\u8d56\uff0c\u81ea\u52a8\u6839\u636e\u64cd\u4f5c\u7cfb\u7edf\u5b89\u88c5\u5408\u9002\u7684\u4f9d\u8d56\uff1a\n\n| \u5e73\u53f0 | pywin32\u5b89\u88c5 | Windows\u76ee\u5f55\u66f4\u65b0\u529f\u80fd |\n|------|-------------|-------------------|\n| **Windows** | \u2705 \u81ea\u52a8\u5b89\u88c5 | \u2705 \u5b8c\u5168\u652f\u6301 |\n| **Linux** | \u274c \u81ea\u52a8\u8df3\u8fc7 | \u274c \u4e0d\u652f\u6301 |\n| **macOS** | \u274c \u81ea\u52a8\u8df3\u8fc7 | \u274c \u4e0d\u652f\u6301 |\n\n### \u529f\u80fd\u5bf9\u6bd4\n| \u529f\u80fd | \u7528\u6237\u5b89\u88c5 | [dev] |\n|------|----------|-------|\n| \u62a5\u544a\u751f\u6210 | \u2705 | \u2705 |\n| \u6570\u636e\u5904\u7406 | \u2705 | \u2705 |\n| \u56fe\u8868\u751f\u6210 | \u2705 | \u2705 |\n| \u6c34\u5370\u529f\u80fd | \u2705 | \u2705 |\n| Windows\u76ee\u5f55\u66f4\u65b0 | \ud83d\udd04 | \ud83d\udd04 |\n| \u5f00\u53d1\u5de5\u5177 | \u274c | \u2705 |\n\n\ud83d\udd04 = \u81ea\u52a8\u5e73\u53f0\u9002\u914d\uff1aWindows\u652f\u6301\uff0cLinux/macOS\u4e0d\u652f\u6301\n\n## \u9879\u76ee\u7ed3\u6784\n\n\u9879\u76ee\u4e3b\u8981\u5305\u542b\u4ee5\u4e0b\u6a21\u5757\uff1a\n\n```\nAeroSpotReportV2/\n\u251c\u2500\u2500 config/               # \u914d\u7f6e\u6a21\u5757\uff08\u5e38\u91cf\u3001\u6837\u5f0f\u3001\u516c\u53f8\u4fe1\u606f\u7b49\u96c6\u4e2d\u7ba1\u7406\uff09\n\u2502   \u251c\u2500\u2500 __init__.py\n\u2502   \u251c\u2500\u2500 constants.py      # \u5e38\u91cf\u5b9a\u4e49\n\u2502   \u251c\u2500\u2500 styles.py         # \u6837\u5f0f\u914d\u7f6e\n\u2502   \u251c\u2500\u2500 company_info.py   # \u516c\u53f8\u4fe1\u606f\u914d\u7f6e\n\u2502   \u2514\u2500\u2500 defaults.py       # \u9ed8\u8ba4\u914d\u7f6e\n\u251c\u2500\u2500 utils/                # \u5de5\u5177\u6a21\u5757\uff08\u901a\u7528\u5de5\u5177\u51fd\u6570\uff0c\u53bb\u91cd\u6574\u5408\uff09\n\u2502   \u251c\u2500\u2500 __init__.py\n\u2502   \u251c\u2500\u2500 text.py           # \u6587\u672c\u5904\u7406\u5de5\u5177\uff08\u5982is_chinese\u3001is_numeric\u7b49\uff09\n\u2502   \u251c\u2500\u2500 font.py           # \u5b57\u4f53\u5904\u7406\u5de5\u5177\n\u2502   \u251c\u2500\u2500 io.py             # \u8f93\u5165\u8f93\u51fa\u5de5\u5177\n\u2502   \u251c\u2500\u2500 geo.py            # \u5730\u7406\u8ba1\u7b97\u5de5\u5177\n\u2502   \u2514\u2500\u2500 path.py           # \u8def\u5f84\u5904\u7406\u5de5\u5177\n\u251c\u2500\u2500 document/             # \u6587\u6863\u751f\u6210\u6a21\u5757\uff08\u62a5\u544a\u6837\u5f0f\u3001\u6bb5\u843d\u3001\u8868\u683c\u3001\u56fe\u7247\u3001\u9875\u9762\u7b49\uff09\n\u2502   \u251c\u2500\u2500 __init__.py\n\u2502   \u251c\u2500\u2500 styles.py         # \u6587\u6863\u6837\u5f0f\n\u2502   \u251c\u2500\u2500 paragraphs.py     # \u6bb5\u843d\u751f\u6210\n\u2502   \u251c\u2500\u2500 tables.py         # \u8868\u683c\u751f\u6210\n\u2502   \u251c\u2500\u2500 images.py         # \u56fe\u50cf\u5904\u7406\n\u2502   \u2514\u2500\u2500 pages.py          # \u9875\u9762\u751f\u6210\n\u251c\u2500\u2500 processor/            # \u6570\u636e\u5904\u7406\u6a21\u5757\n\u2502   \u251c\u2500\u2500 data/             # \u6570\u636e\u5904\u7406\u5b50\u6a21\u5757\n\u2502   \u2502   \u251c\u2500\u2500 __init__.py\n\u2502   \u2502   \u251c\u2500\u2500 processor.py  # \u6570\u636e\u5904\u7406\u6838\u5fc3\n\u2502   \u2502   \u251c\u2500\u2500 standardizer.py # \u6570\u636e\u6807\u51c6\u5316\n\u2502   \u2502   \u251c\u2500\u2500 analyzer.py   # \u6570\u636e\u5206\u6790\n\u2502   \u2502   \u251c\u2500\u2500 matcher.py    # \u6570\u636e\u5339\u914d\n\u2502   \u2502   \u2514\u2500\u2500 utils.py      # \u6570\u636e\u5904\u7406\u5de5\u5177\n\u2502   \u251c\u2500\u2500 config.py         # \u914d\u7f6e\u5904\u7406\n\u2502   \u251c\u2500\u2500 downloader.py     # \u6570\u636e\u4e0b\u8f7d\n\u2502   \u251c\u2500\u2500 extractor.py      # \u6570\u636e\u63d0\u53d6\n\u2502   \u2514\u2500\u2500 maps.py           # \u536b\u661f\u56fe\u50cf\u4e0e\u53ef\u89c6\u5316\u5730\u56fe\u751f\u6210\n\u251c\u2500\u2500 main.py               # \u4e3b\u7a0b\u5e8f\u5165\u53e3\n\u251c\u2500\u2500 generator.py          # \u62a5\u544a\u751f\u6210\u5668\n\u251c\u2500\u2500 error_handler.py      # \u9519\u8bef\u5904\u7406\n\u251c\u2500\u2500 log_config.py         # \u65e5\u5fd7\u914d\u7f6e\n\u2514\u2500\u2500 resource_manager.py   # \u8d44\u6e90\u7ba1\u7406\n```\n\n## \u4e3b\u8981\u529f\u80fd\n\n1. **\u6570\u636e\u5904\u7406**\uff1a\n   - \u4ece\u538b\u7f29\u6587\u4ef6\u4e2d\u63d0\u53d6\u822a\u6d4b\u6570\u636e\n   - \u6807\u51c6\u5316\u6570\u636e\u5217\u540d\u548c\u6307\u6807\u540d\u79f0\n   - \u8ba1\u7b97\u57fa\u672c\u7edf\u8ba1\u4fe1\u606f\n   - \u6570\u636e\u5339\u914d\u548c\u5206\u6790\n   - \u536b\u661f\u56fe\u50cf\u4e0e\u6307\u6807\u6570\u636e\u53ef\u89c6\u5316\uff08\u89c1processor/maps.py\uff09\n\n2. **\u62a5\u544a\u751f\u6210**\uff1a\n   - \u751f\u6210\u4e13\u4e1a\u7684Word\u683c\u5f0f\u62a5\u544a\n   - \u5305\u542b\u7edf\u8ba1\u8868\u683c\u3001\u5206\u5e03\u56fe\u548c\u5206\u6790\u7ed3\u679c\n   - \u81ea\u5b9a\u4e49\u62a5\u544a\u6837\u5f0f\u548c\u5185\u5bb9\n\n3. **\u6570\u636e\u53ef\u89c6\u5316**\uff1a\n   - \u751f\u6210\u6307\u6807\u5206\u5e03\u56fe\u3001\u63d2\u503c\u70ed\u529b\u56fe\u3001\u6c34\u8d28\u7b49\u7ea7\u5206\u5e03\u56fe\n   - \u652f\u6301\u536b\u661f\u5e95\u56fe\u4e0e\u81ea\u5b9a\u4e49\u5730\u7406\u8fb9\u754c\n\n## \u5b89\u88c5\u4f7f\u7528\n\n1. \u514b\u9686\u9879\u76ee\u5230\u672c\u5730\uff1a\n   ```bash\n   git clone https://github.com/1034378361/AeroSpotReportV2.git\n   cd AeroSpotReportV2\n   ```\n\n2. \u5b89\u88c5\u4f9d\u8d56\uff1a\n   ```bash\n   pip install -r requirements.txt\n   ```\n\n3. \u914d\u7f6e\u73af\u5883\u53d8\u91cf\uff1a\n   \u521b\u5efa`.env`\u6587\u4ef6\u5e76\u8bbe\u7f6e\u5fc5\u8981\u7684\u73af\u5883\u53d8\u91cf\u3002\n\n4. \u8fd0\u884c\u7a0b\u5e8f\uff1a\n   ```bash\n   python main.py\n   ```\n\n## \u914d\u7f6e\u8bf4\u660e\n\n\u9879\u76ee\u652f\u6301\u901a\u8fc7\u914d\u7f6e\u6587\u4ef6\u548c\u73af\u5883\u53d8\u91cf\u8fdb\u884c\u914d\u7f6e\u3002\u4e3b\u8981\u914d\u7f6e\u9879\u5305\u62ec\uff1a\n\n- \u516c\u53f8\u4fe1\u606f\u914d\u7f6e\n- \u62a5\u544a\u6837\u5f0f\u914d\u7f6e\n- \u6570\u636e\u5904\u7406\u53c2\u6570\u914d\u7f6e\n- \u8f93\u51fa\u8def\u5f84\u914d\u7f6e\n\n\u8be6\u7ec6\u914d\u7f6e\u8bf4\u660e\u8bf7\u53c2\u8003 `config/` \u76ee\u5f55\u4e0b\u7684\u76f8\u5173\u6587\u4ef6\u3002\n\n## \u6570\u636e\u5904\u7406\u4e0e\u53ef\u89c6\u5316\u6a21\u5757\n\n- \u6570\u636e\u5904\u7406\u6a21\u5757(`processor/data/`)\u662f\u9879\u76ee\u7684\u6838\u5fc3\uff0c\u8d1f\u8d23\u5904\u7406\u822a\u6d4b\u6570\u636e\u548c\u5b9e\u6d4b\u6570\u636e\uff0c\u4e3b\u8981\u529f\u80fd\u5305\u62ec\uff1a\n  - \u6570\u636e\u6807\u51c6\u5316\uff1a\u7edf\u4e00\u5217\u540d\u548c\u6307\u6807\u540d\u79f0\n  - \u6570\u636e\u5339\u914d\uff1a\u5c06\u822a\u6d4b\u6570\u636e\u4e0e\u5b9e\u6d4b\u6570\u636e\u8fdb\u884c\u5339\u914d\n  - \u6570\u636e\u5206\u6790\uff1a\u8ba1\u7b97\u7edf\u8ba1\u4fe1\u606f\uff0c\u5206\u6790\u6570\u636e\u7279\u5f81\n  - \u8bef\u5dee\u5206\u6790\uff1a\u5206\u6790\u539f\u59cb\u822a\u6d4b\u6570\u636e\u548c\u91cd\u65b0\u53cd\u6f14\u6570\u636e\u4e0e\u5b9e\u6d4b\u6570\u636e\u7684\u8bef\u5dee\n- \u5730\u56fe\u4e0e\u53ef\u89c6\u5316\u6a21\u5757(`processor/maps.py`)\u652f\u6301\u57fa\u4e8e\u536b\u661f\u56fe\u50cf\u548c\u6307\u6807\u6570\u636e\u751f\u6210\u5206\u5e03\u56fe\u3001\u63d2\u503c\u70ed\u529b\u56fe\u548c\u6c34\u8d28\u7b49\u7ea7\u5206\u5e03\u56fe\u3002\n\n## \u6a21\u5757\u5316\u91cd\u6784\u8bf4\u660e\n\n- \u672c\u9879\u76ee\u5df2\u5b8c\u6210\u914d\u7f6e\u3001\u5de5\u5177\u51fd\u6570\u3001\u6587\u6863\u751f\u6210\u7b49\u6a21\u5757\u7684\u7ed3\u6784\u5316\u91cd\u6784\uff0c\u6d88\u9664\u4e86\u91cd\u590d\u5b9a\u4e49\uff0c\u63d0\u5347\u4e86\u53ef\u7ef4\u62a4\u6027\u3002\n- \u4e3b\u7a0b\u5e8f\uff08\u5982`main.py`\u3001`generator.py`\uff09\u7684\u5bfc\u5165\u8def\u5f84\u66f4\u65b0\u4e0e\u5168\u5c40\u9002\u914d\u6b63\u5728\u89c4\u5212\u4e2d\u3002\n- \u8be6\u7ec6\u91cd\u6784\u8ba1\u5212\u89c1 `refactoring_plan.md`\u3002\n\n## \u6ce8\u610f\u4e8b\u9879\n\n- \u9879\u76ee\u9700\u8981Python 3.10\u6216\u66f4\u9ad8\u7248\u672c\n- \u90e8\u5206\u529f\u80fd\u9700\u8981\u6388\u6743\u624d\u80fd\u4f7f\u7528\n- \u8bf7\u786e\u4fdd\u8f93\u5165\u6570\u636e\u683c\u5f0f\u7b26\u5408\u8981\u6c42 \n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "AeroSpot\u81ea\u52a8\u5316\u62a5\u544a\u751f\u6210\u5de5\u5177",
    "version": "0.4.2",
    "project_urls": {
        "Bug Tracker": "https://github.com/1034378361/AutoReportV2/issues",
        "Documentation": "https://autoreport-v2.readthedocs.io/",
        "Homepage": "https://github.com/1034378361/AutoReportV2",
        "Repository": "https://github.com/1034378361/AutoReportV2"
    },
    "split_keywords": [
        "report",
        " generator",
        " docx",
        " automation",
        " remote sensing"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "05f02c2d5181c044d8f6e3a96233e8a879a4f487c33f1c03e0f109a110255de4",
                "md5": "973fbcb32b8204fd8c95e8f97f3203ff",
                "sha256": "c1ed1a07872cc415fff6d069b8bc8f734abf4154eaa30c89356c8aadb37fbb99"
            },
            "downloads": -1,
            "filename": "aerospot_autoreport-0.4.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "973fbcb32b8204fd8c95e8f97f3203ff",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 1282669,
            "upload_time": "2025-07-09T10:59:00",
            "upload_time_iso_8601": "2025-07-09T10:59:00.579576Z",
            "url": "https://files.pythonhosted.org/packages/05/f0/2c2d5181c044d8f6e3a96233e8a879a4f487c33f1c03e0f109a110255de4/aerospot_autoreport-0.4.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "5000981b8ae9c96c67c4373d7522e24e4b34eb08a1641dc5b3742fdf89d4ab7e",
                "md5": "66fd9d8da3bfc39f7832800b205fe41f",
                "sha256": "2c67d00527825fc19257b8187a08dc7b0c54600f5e4d8f09e20c39bbd80d761e"
            },
            "downloads": -1,
            "filename": "aerospot_autoreport-0.4.2.tar.gz",
            "has_sig": false,
            "md5_digest": "66fd9d8da3bfc39f7832800b205fe41f",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 1475736,
            "upload_time": "2025-07-09T10:59:01",
            "upload_time_iso_8601": "2025-07-09T10:59:01.877105Z",
            "url": "https://files.pythonhosted.org/packages/50/00/981b8ae9c96c67c4373d7522e24e4b34eb08a1641dc5b3742fdf89d4ab7e/aerospot_autoreport-0.4.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-09 10:59:01",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "1034378361",
    "github_project": "AutoReportV2",
    "github_not_found": true,
    "lcname": "aerospot-autoreport"
}
        
Elapsed time: 0.80037s