本目录（_vendor/）第三方代码来源与许可说明
================================================================

本目录的存在目的
----------------
让主程序 alert_full.py 不必在运行时联网安装依赖。
云端定时任务每次执行都在一个全新沙箱里，联网装包的耗时完全不可控
（上限 120 秒），叠加扫描时间后整档任务会被平台判为超时失败。
把依赖随包携带后，导入耗时接近 0，该故障根除。

主程序只使用 pytdx 的联网取数功能：连接、取 K 线、取实时报价。
不使用其中的交易下单、本地文件读取、命令行工具等任何其它能力。

----------------------------------------------------------------
1) pytdx 1.72
----------------------------------------------------------------
来源      ：PyPI 官方包 pytdx-1.72.tar.gz（未做任何裁剪，全量收录）
           https://pypi.org/project/pytdx/
项目主页  ：https://github.com/rainx/pytdx
作者      ：RainX <Jing Xu> (i@rainx.cc)、yutiansut
许可状况  ：该项目未附标准开源许可证文件 —— PyPI 元数据 license 字段为空、
           GitHub 仓库根目录仅有 README.md、无 LICENSE。此处按「来源可查、
           未取得明确授权」如实记录，使用与再分发请自行评估。
原作者声明（README.md 原文摘录，未改动）：
   「此代码用于个人对网络协议的研究和习作，不对外提供服务，任何人使用本代码
     遇到问题请自行解决，也可以在github提issue给我，但是我不保证能即时处理。」
   「由于我们连接的是既有的行情软件兼容行情服务器，机构请不要使用此代码，
     对此造成的任何问题本人概不负责。」

----------------------------------------------------------------
2) six 1.17.0
----------------------------------------------------------------
来源      ：PyPI 官方包 six-1.17.0-py2.py3-none-any.whl 中的 six.py
           https://pypi.org/project/six/
项目主页  ：https://github.com/benjaminp/six
作者      ：Benjamin Peterson
许可证    ：MIT License

----------------------------------------------------------------
3) _pandas_stub.py（本工具自写，非第三方）
----------------------------------------------------------------
自写的轻量占位模块，仅在运行环境没有 pandas 时顶替 import，详见该文件头部注释。

----------------------------------------------------------------
本目录相对上游唯一的修改（12 个文件，各 1 处）
----------------------------------------------------------------
把模块顶部的 `import pandas as pd` 改为软降级：

    try:
        import pandas as pd
    except Exception:
        import _pandas_stub as pd

改动原因：云端沙箱不安装 pandas（体积大、安装慢），而主程序所用取数路径完全不
调用 pandas。改动后若环境无 pandas，主程序照常运行；万一有代码调用到 pandas
功能，会立刻抛出明确的中文报错，不会静默返回错误结果。若环境装有真 pandas，
则优先使用真的，行为与上游完全一致。
