采集端与 data-hub 统一用 style_id (= dim_style.id) 关联款式,style_name 降级为显示冗余。
款式主键:
- 14 张采集表加 style_id BIGINT + style_match_method + *_style_id_idx 索引
- 一律逻辑外键:不建 FOREIGN KEY,早期 10 个 *_style_id_fk 在 schema.sql 里幂等 DROP
- loader 下发 dim_style.id;db 层 attach_style_ids / resolve_style_ids_by_product 兜底
- 新增 backfill_style_id.py 三段回填(款名 / 日报按商品 ID / 广告表按 spu_id)
- 新增视图 v_style_id_coverage、v_style_unmatched_product、v_style_unmatched_source
- 实库补录 199 个商品 ID 到 67 款 spus;日报 style_id 覆盖 49.1% -> 79.0%,
tm 广告 99.4% / jd 92.4% / dy 83.2%,其余 11 张 100%
评价采集下线:
- product_reviews 归档为 product_reviews_archived_20261101
- 差评改由 shop.{tmall,jd,dy}_negative_reviews.daily 采集,消费方读 v_negative_reviews
- 删除 import_product_reviews.py / orchestrate_review_collection.py 及相关命令与绑定
- dy_product_scraping 默认流程摘除评论采集,保留 --reviews-only
天猫广告:
- 迁移到独立表 tm_product_ad_daily_metrics,不再写 product_daily_metrics.raw_data
同批附带:
- 光合上传支持天猫新店 new_bag(仅黑曜石系列)
- 京东商智双月日历排除 -diff-month 补位格
- 万相主体搜索词覆盖 STYLE_SEARCH_KEYWORDS
- ERP 部分编码失败时用已成功编码销量兜底,避免整款归零
1065 lines
51 KiB
JSON
1065 lines
51 KiB
JSON
{
|
|
"schema_version": 1,
|
|
"module": "product_commerce",
|
|
"snapshot": "current-filesystem",
|
|
"files": [
|
|
{
|
|
"category": "launcher_provenance",
|
|
"source_sha256": "c7ad2a359730d8c4d449b0e37e5a4fb2940b4e8b5a4293a1b0a3767c185ee2cc",
|
|
"target_sha256": "106a6a15ac2226e4db4d4bcdeda09ba8eca9facbd6e80f2ade6eea8821be5c5f",
|
|
"transformed": true,
|
|
"source_relative_path": "run_alerts.bat",
|
|
"target_relative_path": "docs/history/product-commerce/launchers_reference/run_alerts.bat"
|
|
},
|
|
{
|
|
"category": "launcher_provenance",
|
|
"source_sha256": "a96d18ccf79ea43d2152f2ab7de8de5e77c5a45e1cbbb2ec4495eb92e69bbe1b",
|
|
"target_sha256": "1f286ed25cdebb4315aa64b878a7529ae74514b2def33d021834645116d3b48e",
|
|
"transformed": true,
|
|
"source_relative_path": "run_daily_collect.bat",
|
|
"target_relative_path": "docs/history/product-commerce/launchers_reference/run_daily_collect.bat"
|
|
},
|
|
{
|
|
"category": "launcher_provenance",
|
|
"source_sha256": "a7c8f6a777515f53160996b61804a93aedd4f3b37fa6374dc3eb64ff1588046a",
|
|
"target_sha256": "4211341edcf8be34feef7b0be1e7779cb28707c4af5cc8c77d36d85835c28037",
|
|
"transformed": true,
|
|
"source_relative_path": "run_daily_import.bat",
|
|
"target_relative_path": "docs/history/product-commerce/launchers_reference/run_daily_import.bat"
|
|
},
|
|
{
|
|
"category": "launcher_provenance",
|
|
"source_sha256": "3df6a5bdda8448c342f2aa37992f471f572df7d5e51d5b0ad50911b4805cbb67",
|
|
"target_sha256": "aa44824a204ee6b05a97fd58dd1964ea6d1b6f477823f10adc5c681384caeced",
|
|
"transformed": true,
|
|
"source_relative_path": "run_daily_import.ps1",
|
|
"target_relative_path": "docs/history/product-commerce/launchers_reference/run_daily_import.ps1"
|
|
},
|
|
{
|
|
"category": "launcher_provenance",
|
|
"source_sha256": "0c64ed81bed07ecdcd522549d0dcaccc97ed966cbb21a2ae60b37c634234feef",
|
|
"target_sha256": "8a4af678695c849d5f49b295edb656155e967796229a8bb580a5d8955c6ba6a3",
|
|
"transformed": true,
|
|
"source_relative_path": "run_daily_persona.bat",
|
|
"target_relative_path": "docs/history/product-commerce/launchers_reference/run_daily_persona.bat"
|
|
},
|
|
{
|
|
"category": "launcher_provenance",
|
|
"source_sha256": "e461e25912cb3dafe3d6b0a092e599d121a756e11e564f1d33706d0709611cf1",
|
|
"target_sha256": "c05295617b0361337192b21a76557c99dae14aad0d549c5980535f0f0090a41b",
|
|
"transformed": true,
|
|
"source_relative_path": "run_style_analysis_3d.bat",
|
|
"target_relative_path": "docs/history/product-commerce/launchers_reference/run_style_analysis_3d.bat"
|
|
},
|
|
{
|
|
"category": "launcher_provenance",
|
|
"source_sha256": "7edfb8cdbfdb88bbaca364b1ad213caef1818eb654b21a73131d67044ef356c0",
|
|
"target_sha256": "42613ed10f083c803657dd6609c3b388fca88f7e0ee9dc105807ad8cab288689",
|
|
"transformed": true,
|
|
"source_relative_path": "run_weekly_jd_main_image.bat",
|
|
"target_relative_path": "docs/history/product-commerce/launchers_reference/run_weekly_jd_main_image.bat"
|
|
},
|
|
{
|
|
"category": "launcher_provenance",
|
|
"source_sha256": "1beadfdb5a0183b6e4a59307827ee4891eab985b1a1b17d0765bd02414bbd12c",
|
|
"target_sha256": "c853990ca8857ef10b46ba71ba2177d4b6897dab4e420bce23bb7f2b22a23fae",
|
|
"transformed": true,
|
|
"source_relative_path": "run_weekly_main_image.bat",
|
|
"target_relative_path": "docs/history/product-commerce/launchers_reference/run_weekly_main_image.bat"
|
|
},
|
|
{
|
|
"category": "launcher_provenance",
|
|
"source_sha256": "656e72dc9a2999960b96d1921125e6649f0a204066664622cb2d6b1d45b290b5",
|
|
"target_sha256": "be206938f49d9d5343dfb49e04514d6cdd9c7850a02e43f8d8c790b08b24c6fa",
|
|
"transformed": true,
|
|
"source_relative_path": "run_weekly_market_rank.bat",
|
|
"target_relative_path": "docs/history/product-commerce/launchers_reference/run_weekly_market_rank.bat"
|
|
},
|
|
{
|
|
"category": "runtime_resource",
|
|
"source_sha256": "589679874b75643d69ea44522e2fe40914a396506ff8e3232150d7e2a96ae2f9",
|
|
"target_sha256": "dbe5760e9cbcaedadf82a2cfd84733a56a12c21e77d00327e95a8a013a5779ad",
|
|
"transformed": true,
|
|
"source_relative_path": ".env.example",
|
|
"target_relative_path": "src/gyxx_flow/modules/product_commerce/.env.example"
|
|
},
|
|
{
|
|
"category": "production_source",
|
|
"source_sha256": "071286d2fb8b0516f0f22f0d088eda9e4a85ae4227619eb1217087ad0dbe3db6",
|
|
"target_sha256": "9ef81a11dcd622aa89fe846fccffe858b740621a4b19ba780910f120391eaae8",
|
|
"transformed": true,
|
|
"source_relative_path": "aggregate_daily_final.py",
|
|
"target_relative_path": "src/gyxx_flow/modules/product_commerce/aggregate_daily_final.py"
|
|
},
|
|
{
|
|
"category": "production_source",
|
|
"source_sha256": "cff768f79672cfc7db7f6866caf5ab59936b8c51eb2a7d729b81441940124512",
|
|
"target_sha256": "01ed46fbbf089f2c46bd67853d64774831ff2c63e2b3792e397bd01df7d9e847",
|
|
"transformed": true,
|
|
"source_relative_path": "analyze_style_with_hermes.py",
|
|
"target_relative_path": "src/gyxx_flow/modules/product_commerce/analyze_style.py"
|
|
},
|
|
{
|
|
"category": "production_source",
|
|
"source_sha256": "4d24f0e0cc65be9c2f6ce4047817794a520801f4e6563fbae2c3174c3d411d72",
|
|
"target_sha256": "66c61171de848eadd81d4a1da1a5f604feebdba5a5144b3dca5baea50d7c1cec",
|
|
"transformed": true,
|
|
"source_relative_path": "backfill_collect.py",
|
|
"target_relative_path": "src/gyxx_flow/modules/product_commerce/backfill_collect.py"
|
|
},
|
|
{
|
|
"category": "production_source",
|
|
"source_sha256": "d8c093315dfc7825459d0590bf1b19ca2838085b8de4bba2bbd0a18e28bda994",
|
|
"target_sha256": "0feb340729d5b59a8cd49b24f3c89712c66a4d4ce789bae7b8ed221d1ad2a8b6",
|
|
"transformed": true,
|
|
"source_relative_path": "backfill_one_day.py",
|
|
"target_relative_path": "src/gyxx_flow/modules/product_commerce/backfill_one_day.py"
|
|
},
|
|
{
|
|
"category": "production_source",
|
|
"source_sha256": "524bff755d6921d64857b7ca6adfe1cf3a64730ddb66ae318751e028f5cf6f10",
|
|
"target_sha256": "dd230b802fc88e16c67abcc8fd08a64c4dbfb68a58b74ea90ee45bad2d4d7870",
|
|
"transformed": true,
|
|
"source_relative_path": "tmp_backfill_poseidon_sales.py",
|
|
"target_relative_path": "src/gyxx_flow/modules/product_commerce/backfill_poseidon_sales.py"
|
|
},
|
|
{
|
|
"category": "production_source",
|
|
"source_sha256": "8a2b09f8e5d4d49239c99a28fbc70bb5e44c8f510b6a1eca86b928eb45f21564",
|
|
"target_sha256": "8a2b09f8e5d4d49239c99a28fbc70bb5e44c8f510b6a1eca86b928eb45f21564",
|
|
"transformed": false,
|
|
"source_relative_path": "backfill_style_id.py",
|
|
"target_relative_path": "src/gyxx_flow/modules/product_commerce/backfill_style_id.py"
|
|
},
|
|
{
|
|
"category": "runtime_resource",
|
|
"source_sha256": "af4df439f109549a2d287514d24193cb046800d23a39cabcc070b8c10d76a52a",
|
|
"target_sha256": "af4df439f109549a2d287514d24193cb046800d23a39cabcc070b8c10d76a52a",
|
|
"transformed": false,
|
|
"source_relative_path": "bitable_main_image_map.json",
|
|
"target_relative_path": "src/gyxx_flow/modules/product_commerce/bitable_main_image_map.json"
|
|
},
|
|
{
|
|
"category": "runtime_resource",
|
|
"source_sha256": "51102b78d1f44b9dfb60f8204a0d5b2403cd8651061e7607c264c6ef730defa2",
|
|
"target_sha256": "51102b78d1f44b9dfb60f8204a0d5b2403cd8651061e7607c264c6ef730defa2",
|
|
"transformed": false,
|
|
"source_relative_path": "bitable_style_map.json",
|
|
"target_relative_path": "src/gyxx_flow/modules/product_commerce/bitable_style_map.json"
|
|
},
|
|
{
|
|
"category": "production_source",
|
|
"source_sha256": "6fb7cd48665c8cb7cf40dd69693408047a85a6abba3cbd410b4e5e9a9a55e9ba",
|
|
"target_sha256": "72b099e6fa3bc12400f2a635abdeb2e150fc8e69bd2268f5d733cdd27f0dc1c8",
|
|
"transformed": true,
|
|
"source_relative_path": "check_nine_day_decline.py",
|
|
"target_relative_path": "src/gyxx_flow/modules/product_commerce/check_nine_day_decline.py"
|
|
},
|
|
{
|
|
"category": "production_source",
|
|
"source_sha256": "1493dbbfb3d864812df378d04d006e7de0f9ec4b6ab5812e5c6970c304c2dfe6",
|
|
"target_sha256": "2b6e6adfea82b13dd8c819138a428a78b5802f204c199c58ed4e59f0158d1780",
|
|
"transformed": true,
|
|
"source_relative_path": "collect_dy_market_rank.py",
|
|
"target_relative_path": "src/gyxx_flow/modules/product_commerce/collect_dy_market_rank.py"
|
|
},
|
|
{
|
|
"category": "production_source",
|
|
"source_sha256": "abd4c82cbd6c41e111e213c174d2fdeba1214568496eaf1dede24bf374b3b052",
|
|
"target_sha256": "eedf83f1d85662dc2e6d968af29070be819c7caac25057c74d6cb66b75f52216",
|
|
"transformed": true,
|
|
"source_relative_path": "collect_dy_persona_to_bitable.py",
|
|
"target_relative_path": "src/gyxx_flow/modules/product_commerce/collect_dy_persona_to_bitable.py"
|
|
},
|
|
{
|
|
"category": "production_source",
|
|
"source_sha256": "c7b54d941ab7f056e2d0ea4355543ff4a5c34ad986c8ed32145e988ac9501ea2",
|
|
"target_sha256": "b306195f9fd90d6fba3c8fd9335677fe8dcfa1653604c8ace9f3cc340f43a5dc",
|
|
"transformed": true,
|
|
"source_relative_path": "collect_erp_yesterday_metrics.py",
|
|
"target_relative_path": "src/gyxx_flow/modules/product_commerce/collect_erp_yesterday_metrics.py"
|
|
},
|
|
{
|
|
"category": "production_source",
|
|
"source_sha256": "8bb1f17f90a7b9c2db5dfb992cf746329892d19c00ae2ae988e2109c049598b2",
|
|
"target_sha256": "9b24259854a440d5a13fa2bc397887ab86cf7d4a573b10d3bda6988ed37d0ed6",
|
|
"transformed": true,
|
|
"source_relative_path": "collect_jd_market_rank.py",
|
|
"target_relative_path": "src/gyxx_flow/modules/product_commerce/collect_jd_market_rank.py"
|
|
},
|
|
{
|
|
"category": "production_source",
|
|
"source_sha256": "f9a48c5f89b18472dc3993e340ad858bfecb2fcf59427c7e70db37512c17a6f7",
|
|
"target_sha256": "01798bd6110afc84e5a6aab50255deeb0c5980f77895fcaf605ccb93d24656a5",
|
|
"transformed": true,
|
|
"source_relative_path": "collect_jd_persona_to_bitable.py",
|
|
"target_relative_path": "src/gyxx_flow/modules/product_commerce/collect_jd_persona_to_bitable.py"
|
|
},
|
|
{
|
|
"category": "production_source",
|
|
"source_sha256": "3c1858a6ab4f7ce480b3a5f2076e6ec79400e9bfaa75377488c3629e707c7963",
|
|
"target_sha256": "0e4314a525f49b7c24c145f092afcd6c93749c694d6d8bcbd2d1fcdf9b2e54c7",
|
|
"transformed": true,
|
|
"source_relative_path": "collect_persona_to_bitable.py",
|
|
"target_relative_path": "src/gyxx_flow/modules/product_commerce/collect_persona_to_bitable.py"
|
|
},
|
|
{
|
|
"category": "production_source",
|
|
"source_sha256": "e93c0a1b579370a66d9e05077e20c9ef015ebf521d58b2f6e88bc00bfc7706a2",
|
|
"target_sha256": "28547274719cba60ed61639bd57491d1405b79f3c81ea61a3a320830f579bbe9",
|
|
"transformed": true,
|
|
"source_relative_path": "collect_retry_utils.py",
|
|
"target_relative_path": "src/gyxx_flow/modules/product_commerce/collect_retry_utils.py"
|
|
},
|
|
{
|
|
"category": "production_source",
|
|
"source_sha256": "13b6e68b4872b2e79c1de8ca1617cc4f1249f4ed32f234ad6efb7a04f5948612",
|
|
"target_sha256": "35b5838736306d58758dca870deb7a296a21a2cbc7bb0c4b84d7f233095bee22",
|
|
"transformed": true,
|
|
"source_relative_path": "collect_sycm_market_rank.py",
|
|
"target_relative_path": "src/gyxx_flow/modules/product_commerce/collect_sycm_market_rank.py"
|
|
},
|
|
{
|
|
"category": "production_source",
|
|
"source_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
|
|
"target_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
|
|
"transformed": false,
|
|
"source_relative_path": "config/__init__.py",
|
|
"target_relative_path": "src/gyxx_flow/modules/product_commerce/config/__init__.py"
|
|
},
|
|
{
|
|
"category": "runtime_resource",
|
|
"source_sha256": "277f80393a7ead72b260b56173471e924e139db0ba60e1ae534d85cc1ef5f9cc",
|
|
"target_sha256": "bd0f4087fc061555cb8d2bab485bc0d98417dc1816d210bd58bf7ff6801cff39",
|
|
"transformed": true,
|
|
"source_relative_path": "config/auto-flow-config.example.json",
|
|
"target_relative_path": "src/gyxx_flow/modules/product_commerce/config/auto-flow-config.example.json"
|
|
},
|
|
{
|
|
"category": "production_source",
|
|
"source_sha256": "22dcc9d8b2f1cf598a62e4c71df765a952250694cb26b9a73f477c5ca1a29884",
|
|
"target_sha256": "5af46cd70a75930ca34142775d145416c073699ecec265dab6a34f27a59794fe",
|
|
"transformed": true,
|
|
"source_relative_path": "config/style_config_loader.py",
|
|
"target_relative_path": "src/gyxx_flow/modules/product_commerce/config/style_config_loader.py"
|
|
},
|
|
{
|
|
"category": "production_source",
|
|
"source_sha256": "a8900b9f25db6cf2bef3117a1d2cd86283054fea6f5a8590fd91b5cfbbcaf87e",
|
|
"target_sha256": "61cb3cc7e5ecbe76dea8f7557327c371971e9b301a62f99727708ed342caeaf4",
|
|
"transformed": true,
|
|
"source_relative_path": "db/__init__.py",
|
|
"target_relative_path": "src/gyxx_flow/modules/product_commerce/db/__init__.py"
|
|
},
|
|
{
|
|
"category": "runtime_resource",
|
|
"source_sha256": "9739407b61842c598491d3189a32f5f15aa944aed79a164a5cd5b5a34f20c746",
|
|
"target_sha256": "51893cc8b9cb241820fcdccc84729bc2303e5c705d47cef7f76db911fb6984cb",
|
|
"transformed": true,
|
|
"source_relative_path": "db/schema.sql",
|
|
"target_relative_path": "src/gyxx_flow/modules/product_commerce/db/schema.sql"
|
|
},
|
|
{
|
|
"category": "production_source",
|
|
"source_sha256": "78c74c0e52e3651b3b042a2095e596ab250e60309c7ae2de905850822aad4922",
|
|
"target_sha256": "1e6ed0029c9d1f701ae1d80b670fdb465cdbfd13b9f63d0a3179c19585215246",
|
|
"transformed": true,
|
|
"source_relative_path": "dy_audience_profile_collect.py",
|
|
"target_relative_path": "src/gyxx_flow/modules/product_commerce/dy_audience_profile_collect.py"
|
|
},
|
|
{
|
|
"category": "production_source",
|
|
"source_sha256": "492916088fa5e8c170461cc9eba97a88ed1cc1e50c7b99e5f6a5e49167fea157",
|
|
"target_sha256": "1ab238bf134a4e639c81d60f3e2cff63ec07040b3330c90289fb2e661f082573",
|
|
"transformed": true,
|
|
"source_relative_path": "dy_product_scraping.py",
|
|
"target_relative_path": "src/gyxx_flow/modules/product_commerce/dy_product_scraping.py"
|
|
},
|
|
{
|
|
"category": "production_source",
|
|
"source_sha256": "26f3448e57a08020de0a96d1df3387819afc47f9319b81dbab27f1afc81bfb01",
|
|
"target_sha256": "4c36f3eafd29241e1e5436c0a5f64682870a330003a99dcd03a2a981e425e8b8",
|
|
"transformed": true,
|
|
"source_relative_path": "erp_login_product_analysis.py",
|
|
"target_relative_path": "src/gyxx_flow/modules/product_commerce/erp_login_product_analysis.py"
|
|
},
|
|
{
|
|
"category": "production_source",
|
|
"source_sha256": "fcd8db904a14cd5239a5e075e1a888af18c5b24c928608576f6decf4c48c1d8f",
|
|
"target_sha256": "18cfd51b7f6df00a4a4834ccce59acc83035177b39a40e1cb4b0f3639545a2fc",
|
|
"transformed": true,
|
|
"source_relative_path": "erp_metric_overrides.py",
|
|
"target_relative_path": "src/gyxx_flow/modules/product_commerce/erp_metric_overrides.py"
|
|
},
|
|
{
|
|
"category": "production_source",
|
|
"source_sha256": "b828e1ad566b121bd56f90ef5de9d414cbe8575ec747cd26dfa3e4b66b097a9a",
|
|
"target_sha256": "49da688998376bbd932195ef56603a37f342fa2eb307925a83592596641b8ace",
|
|
"transformed": true,
|
|
"source_relative_path": "export_bitable_records.py",
|
|
"target_relative_path": "src/gyxx_flow/modules/product_commerce/export_bitable_records.py"
|
|
},
|
|
{
|
|
"category": "production_source",
|
|
"source_sha256": "725e25fdf9f3c75f0aae17b720cf417a0b31573dbbbf0b174e956e46fe205408",
|
|
"target_sha256": "5c5e262373c62ce37202320ba878ab44b593f0e7443e79919db166a9c6a054fc",
|
|
"transformed": true,
|
|
"source_relative_path": "feishu_doc_native.py",
|
|
"target_relative_path": "src/gyxx_flow/modules/product_commerce/feishu_doc_native.py"
|
|
},
|
|
{
|
|
"category": "production_source",
|
|
"source_sha256": "906278aa6fb3578d5dab231bdccc2f5a7c6ec8c85810a3e026fff3c7ba16dc90",
|
|
"target_sha256": "c9ac5b78ce367eb0b87697255a88400d1e2e83416ee1fc105110d3abc3dd8245",
|
|
"transformed": true,
|
|
"source_relative_path": "import_product_daily.py",
|
|
"target_relative_path": "src/gyxx_flow/modules/product_commerce/import_product_daily.py"
|
|
},
|
|
{
|
|
"category": "production_source",
|
|
"source_sha256": "057a01e8a22cdd2d1806d290da207209954af89f7da6339e9cdcef3bc0297e63",
|
|
"target_sha256": "815c00d039e4f81e4f9deae95891fab288c6584e72d21b73f4b6f348e158e126",
|
|
"transformed": true,
|
|
"source_relative_path": "insert_bitable_records.py",
|
|
"target_relative_path": "src/gyxx_flow/modules/product_commerce/insert_bitable_records.py"
|
|
},
|
|
{
|
|
"category": "production_source",
|
|
"source_sha256": "e0f016bafb3f527f1cae46eaf3ef31510184128aaaa7f52024a7c3f978eec42b",
|
|
"target_sha256": "cef210f479d45e4b92cc597ddde0d80e62e37b1546c3ee27099ad7ad9c71d108",
|
|
"transformed": true,
|
|
"source_relative_path": "jd_main_image_collector.py",
|
|
"target_relative_path": "src/gyxx_flow/modules/product_commerce/jd_main_image_collector.py"
|
|
},
|
|
{
|
|
"category": "production_source",
|
|
"source_sha256": "d99ce71a008128549ac83fc3da52d88540b74538e3fe5c85d47c3b985e414353",
|
|
"target_sha256": "a24cc909d319c801fa63372dfcb6e3a0bd1cb6326e28008db7ada7293802a743",
|
|
"transformed": true,
|
|
"source_relative_path": "jd_product_data_collector.py",
|
|
"target_relative_path": "src/gyxx_flow/modules/product_commerce/jd_product_data_collector.py"
|
|
},
|
|
{
|
|
"category": "production_source",
|
|
"source_sha256": "314790f06f7b4ebf9b0ddd5681db9c60e79a3ef16f5546d6e8489531a003c545",
|
|
"target_sha256": "2a254e00bb3ddd3a3d09a14599827e27d002786bf09e6d7004e25f5cabf787ef",
|
|
"transformed": true,
|
|
"source_relative_path": "jd_self_inventory_sales_collector.py",
|
|
"target_relative_path": "src/gyxx_flow/modules/product_commerce/jd_self_inventory_sales_collector.py"
|
|
},
|
|
{
|
|
"category": "production_source",
|
|
"source_sha256": "15ac68801e4b9f677bcb31d8d64158b3eecaaae3f264353345ed6e5d5f404d47",
|
|
"target_sha256": "6925c930582d4bfcf83909abc67deda4146e4bd888946fc400c254b7d354a081",
|
|
"transformed": true,
|
|
"source_relative_path": "lark_cli_runtime.py",
|
|
"target_relative_path": "src/gyxx_flow/modules/product_commerce/lark_cli_runtime.py"
|
|
},
|
|
{
|
|
"category": "production_source",
|
|
"source_sha256": "ec447d182cc186d4610cfee6ae4ce9b9dce924d905c07268b06a3a2ea0332801",
|
|
"target_sha256": "ac171ccbdeab1103936bfef92b7e35675c16268333476d070f50af957de9a211",
|
|
"transformed": true,
|
|
"source_relative_path": "main_image_db.py",
|
|
"target_relative_path": "src/gyxx_flow/modules/product_commerce/main_image_db.py"
|
|
},
|
|
{
|
|
"category": "production_source",
|
|
"source_sha256": "85a3cbb8ccdb887b125261d3adca84a9a5596b2adf8e19c5ae6dc96e0780b4d5",
|
|
"target_sha256": "85a3cbb8ccdb887b125261d3adca84a9a5596b2adf8e19c5ae6dc96e0780b4d5",
|
|
"transformed": false,
|
|
"source_relative_path": "main_image_paths.py",
|
|
"target_relative_path": "src/gyxx_flow/modules/product_commerce/main_image_paths.py"
|
|
},
|
|
{
|
|
"category": "production_source",
|
|
"source_sha256": "355f8051935d458703ab1842beefa74ccbb00d0fbc73af4aa6761ee6f3b4b32a",
|
|
"target_sha256": "cc0750344d5d64d914e622d3ccbcf888905ca86a991d0b7d8280a2b0714b66da",
|
|
"transformed": true,
|
|
"source_relative_path": "market_rank_hermes_notification.py",
|
|
"target_relative_path": "src/gyxx_flow/modules/product_commerce/market_rank_hermes_notification.py"
|
|
},
|
|
{
|
|
"category": "production_source",
|
|
"source_sha256": "f200d890e62bb9e387949264f5b518ed22c2bb620a60fcd28b673ff3e513c398",
|
|
"target_sha256": "b6a3ad04efbe9b42a598caeb67f7408171ef1862f146fce4dc3eeb57fb2ce24c",
|
|
"transformed": true,
|
|
"source_relative_path": "market_rank_limits.py",
|
|
"target_relative_path": "src/gyxx_flow/modules/product_commerce/market_rank_limits.py"
|
|
},
|
|
{
|
|
"category": "production_source",
|
|
"source_sha256": "910e720fab4f47419ad56055f00a8c3fbe3a06c2577d81e35d3d38178a588a45",
|
|
"target_sha256": "e515cdc287b39a315dec44b4fb1c17f98b2af13bf82715731f92919d45f87854",
|
|
"transformed": true,
|
|
"source_relative_path": "market_rank_product_import.py",
|
|
"target_relative_path": "src/gyxx_flow/modules/product_commerce/market_rank_product_import.py"
|
|
},
|
|
{
|
|
"category": "production_source",
|
|
"source_sha256": "4f2621d855dde386d2764dd925bb88a8aa225f819d1d04944a752a0addd7e9ba",
|
|
"target_sha256": "4f2621d855dde386d2764dd925bb88a8aa225f819d1d04944a752a0addd7e9ba",
|
|
"transformed": false,
|
|
"source_relative_path": "market_rank_report_archive.py",
|
|
"target_relative_path": "src/gyxx_flow/modules/product_commerce/market_rank_report_archive.py"
|
|
},
|
|
{
|
|
"category": "production_source",
|
|
"source_sha256": "37edbfa24dfb126d52992b08fd6aeccae3ee18c83db56426a0fb02934e4541ae",
|
|
"target_sha256": "b52b75e188906de1cabf55eb8791976f740c4bc9f1192971a5a4a5e7a082498c",
|
|
"transformed": true,
|
|
"source_relative_path": "orchestrate_daily_collection.py",
|
|
"target_relative_path": "src/gyxx_flow/modules/product_commerce/orchestrate_daily_collection.py"
|
|
},
|
|
{
|
|
"category": "production_source",
|
|
"source_sha256": "0ab99843d30156465876e27f339f74f3e48b0d17f75d74cf5bfeedd513aaa787",
|
|
"target_sha256": "f2035df7c2ea0ed15587656adb76662e2ed5f124cc54accb00eafda620bc44ee",
|
|
"transformed": true,
|
|
"source_relative_path": "orchestrate_market_rank_collection.py",
|
|
"target_relative_path": "src/gyxx_flow/modules/product_commerce/orchestrate_market_rank_collection.py"
|
|
},
|
|
{
|
|
"category": "production_source",
|
|
"source_sha256": "69f376f2c209d8e2df8f154aceb501eab93d7e077ab0278f5ff35c97356ba296",
|
|
"target_sha256": "69f376f2c209d8e2df8f154aceb501eab93d7e077ab0278f5ff35c97356ba296",
|
|
"transformed": false,
|
|
"source_relative_path": "reapply_erp_override.py",
|
|
"target_relative_path": "src/gyxx_flow/modules/product_commerce/reapply_erp_override.py"
|
|
},
|
|
{
|
|
"category": "production_source",
|
|
"source_sha256": "c5eff1f72da1b47f6d93fc07223a72c960ca636a3db494a1a8cf8d716c076398",
|
|
"target_sha256": "b15212a47d6c8250fb191800586a6b451d8f5e4491f74c4eb148a24fd231f46b",
|
|
"transformed": true,
|
|
"source_relative_path": "rebuild_market_rank_documents.py",
|
|
"target_relative_path": "src/gyxx_flow/modules/product_commerce/rebuild_market_rank_documents.py"
|
|
},
|
|
{
|
|
"category": "production_source",
|
|
"source_sha256": "47c80d311247f0089a9e30b72679f54875e9c750097c3b71d5aa2ae25ab0a134",
|
|
"target_sha256": "6d7a2951f75e490d019444cb3019f87be26709747c95ae328f2f49c1113803b2",
|
|
"transformed": true,
|
|
"source_relative_path": "run_alerts_with_retry.py",
|
|
"target_relative_path": "src/gyxx_flow/modules/product_commerce/run_alerts_with_retry.py"
|
|
},
|
|
{
|
|
"category": "production_source",
|
|
"source_sha256": "c9a51f1d1267b398cf260a86e65a8ee49de873d6c95bf9c90db2abb422005cf7",
|
|
"target_sha256": "54c7b5802f66f9892b455aadd4a7396b7b693b2dda729aa7c22f8909821acd17",
|
|
"transformed": true,
|
|
"source_relative_path": "run_daily_persona.py",
|
|
"target_relative_path": "src/gyxx_flow/modules/product_commerce/run_daily_persona.py"
|
|
},
|
|
{
|
|
"category": "production_source",
|
|
"source_sha256": "27cd730400b954d1a063f034789f0d9a510c711ebda1e2de95e5a0010bd4751f",
|
|
"target_sha256": "fdbb40a10bdf95ef23a70c8574ac5ff0a52b3e419bde5694a186b2c00a9d45e4",
|
|
"transformed": true,
|
|
"source_relative_path": "run_weekly_jd_main_image.py",
|
|
"target_relative_path": "src/gyxx_flow/modules/product_commerce/run_weekly_jd_main_image.py"
|
|
},
|
|
{
|
|
"category": "production_source",
|
|
"source_sha256": "af9b436a31c3454dc6e0b34b77876962dab0b477e8a561db49911fdfc24eade3",
|
|
"target_sha256": "096834b64e4b8e5120e38a116efb4c6eb02440d7c4567bf4d6783c18aee0050d",
|
|
"transformed": true,
|
|
"source_relative_path": "run_weekly_main_image.py",
|
|
"target_relative_path": "src/gyxx_flow/modules/product_commerce/run_weekly_main_image.py"
|
|
},
|
|
{
|
|
"category": "production_source",
|
|
"source_sha256": "34d935efb8dff20afd3ab89ef150c5f8db9cee80c6256c7fe4ef0bae2f72ed63",
|
|
"target_sha256": "3fdaa7e23e96897c2039dcd1cdc6c6fc4ee1fb9cff828262e2360d453d778f47",
|
|
"transformed": true,
|
|
"source_relative_path": "scripts/insert_jd_main_image_records.py",
|
|
"target_relative_path": "src/gyxx_flow/modules/product_commerce/scripts/insert_jd_main_image_records.py"
|
|
},
|
|
{
|
|
"category": "production_source",
|
|
"source_sha256": "a1b097ead2a3f7e20ca63d7c15828a8d04030b0d6722934c3bf65d9e975fba76",
|
|
"target_sha256": "6c2ef5acbfff574a9f7460ebaccc8c4e46a3ccbd8b72944791e0fded69038e77",
|
|
"transformed": true,
|
|
"source_relative_path": "scripts/insert_main_image_records.py",
|
|
"target_relative_path": "src/gyxx_flow/modules/product_commerce/scripts/insert_main_image_records.py"
|
|
},
|
|
{
|
|
"category": "runtime_resource",
|
|
"source_sha256": "b8acd08b97283a1163210d26c2a35b182e1920d2edbad6864226ad24e73ed5b3",
|
|
"target_sha256": "b8acd08b97283a1163210d26c2a35b182e1920d2edbad6864226ad24e73ed5b3",
|
|
"transformed": false,
|
|
"source_relative_path": "styles_input.json",
|
|
"target_relative_path": "src/gyxx_flow/modules/product_commerce/styles_input.json"
|
|
},
|
|
{
|
|
"category": "production_source",
|
|
"source_sha256": "b3e9addd72d8e31292ed948b67018aa9e212d628d7ba39141a81116515ca6721",
|
|
"target_sha256": "369476667783566e47f086e920c593f3f26aa24355c5c9fa0a3f20bc22b3583e",
|
|
"transformed": true,
|
|
"source_relative_path": "taobao_dmp_item_crowd_insight_screenshots.py",
|
|
"target_relative_path": "src/gyxx_flow/modules/product_commerce/taobao_dmp_item_crowd_insight_screenshots.py"
|
|
},
|
|
{
|
|
"category": "production_source",
|
|
"source_sha256": "4474dd7d68117247af87e20bbeb6b7c072368ef0f606de5d3e186f459d34a0f5",
|
|
"target_sha256": "9e87faad21459b8ac79c335734e11b1da636d34747f05e80c7073b66f01e35f1",
|
|
"transformed": true,
|
|
"source_relative_path": "taobao_sycm_collect.py",
|
|
"target_relative_path": "src/gyxx_flow/modules/product_commerce/taobao_sycm_collect.py"
|
|
},
|
|
{
|
|
"category": "production_source",
|
|
"source_sha256": "a881b02c903dc83c7f252d7f53fa9cd721fb562c690271788858ca5782427500",
|
|
"target_sha256": "d64b440344af7cfcc51857e6261fed30f874b446bb2cb2c225d40da0b67da6a3",
|
|
"transformed": true,
|
|
"source_relative_path": "taobao_sycm_collect_backfill.py",
|
|
"target_relative_path": "src/gyxx_flow/modules/product_commerce/taobao_sycm_collect_backfill.py"
|
|
},
|
|
{
|
|
"category": "production_source",
|
|
"source_sha256": "9cafa62a03316fd0222f63addd5c209bb0c20fd0b7affa69cd1e256abfa2aa3a",
|
|
"target_sha256": "cf6f78846238e3b63bcd07221cbc9ecbe1c5d2758f6147f48ff112c3ed97b23a",
|
|
"transformed": true,
|
|
"source_relative_path": "taobao_sycm_products.py",
|
|
"target_relative_path": "src/gyxx_flow/modules/product_commerce/taobao_sycm_products.py"
|
|
},
|
|
{
|
|
"category": "production_source",
|
|
"source_sha256": "3f0c32c443c87417c43881da69aa7776828ba973465f8d32f50b3dc698b0a4fe",
|
|
"target_sha256": "ed86f1b7d4fe6d8e68f4d17abc6bb299df8d3083a0f54c005470491e753c1755",
|
|
"transformed": true,
|
|
"source_relative_path": "taobao_wanxiang_ai_creative_report.py",
|
|
"target_relative_path": "src/gyxx_flow/modules/product_commerce/taobao_wanxiang_ai_creative_report.py"
|
|
},
|
|
{
|
|
"category": "production_source",
|
|
"source_sha256": "e4d99956d9649d108baeb3e3a2d1969c227622d1037062bd277af66375556d82",
|
|
"target_sha256": "c5ed343c698efa35b76f35d95e6deeb19be113f0107d170bbd91596bab2f8e3b",
|
|
"transformed": true,
|
|
"source_relative_path": "upload_video_to_guanghe.py",
|
|
"target_relative_path": "src/gyxx_flow/modules/product_commerce/upload_video_to_guanghe.py"
|
|
},
|
|
{
|
|
"category": "production_source",
|
|
"source_sha256": "b8f1d6645f2b3283897eb7543887eb37ab96da6b3321045dc0c4ff7e2b2b4347",
|
|
"target_sha256": "b8f1d6645f2b3283897eb7543887eb37ab96da6b3321045dc0c4ff7e2b2b4347",
|
|
"transformed": false,
|
|
"source_relative_path": "vendors/dy-data-flow/adaptive_selectors.py",
|
|
"target_relative_path": "src/gyxx_flow/modules/product_commerce/vendors/dy-data-flow/adaptive_selectors.py"
|
|
},
|
|
{
|
|
"category": "production_source",
|
|
"source_sha256": "cceb3861da0e68c686c0c58f64767c3ca2693986bb5006ca7405d3a5a39c4347",
|
|
"target_sha256": "4a44a00ec0e13bac3c4369c0336c6b6410e012d59e39900f3b4d0c093c8def90",
|
|
"transformed": true,
|
|
"source_relative_path": "vendors/dy-data-flow/dy_store_competitor_store_scraping.py",
|
|
"target_relative_path": "src/gyxx_flow/modules/product_commerce/vendors/dy-data-flow/dy_store_competitor_store_scraping.py"
|
|
},
|
|
{
|
|
"category": "source_resource",
|
|
"source_sha256": "d4a786bce99678c07cf0f6f3dfeddd5d08dd0a41d112cc6beaddb98c28d81346",
|
|
"target_sha256": "d4a786bce99678c07cf0f6f3dfeddd5d08dd0a41d112cc6beaddb98c28d81346",
|
|
"transformed": false,
|
|
"source_relative_path": "vendors/dy-data-flow/dynamic_session_src.py",
|
|
"target_relative_path": "src/gyxx_flow/modules/product_commerce/vendors/dy-data-flow/dynamic_session_src.py",
|
|
"lint_policy": "not_a_standalone_module",
|
|
"reason": "upstream DynamicSession implementation excerpt retained as reference source; it starts inside a class body and has no import/module preamble"
|
|
},
|
|
{
|
|
"category": "production_source",
|
|
"source_sha256": "3cf7b95490249306551949683d948523877c15d6d0f506edc69adda9dea15b4f",
|
|
"target_sha256": "3cf7b95490249306551949683d948523877c15d6d0f506edc69adda9dea15b4f",
|
|
"transformed": false,
|
|
"source_relative_path": "vendors/jd-data-flow/collection_progress.py",
|
|
"target_relative_path": "src/gyxx_flow/modules/product_commerce/vendors/jd-data-flow/collection_progress.py"
|
|
},
|
|
{
|
|
"category": "production_source",
|
|
"source_sha256": "ce37281fcd13e9f94e345a3f659baa8a95d7a95c7a61440ab14223e7a61c88ec",
|
|
"target_sha256": "dbc7982986834ca208ba3bcdc75027da4a81e809a8abbd0ec9d889d161cb4a81",
|
|
"transformed": true,
|
|
"source_relative_path": "vendors/jd-data-flow/config.py",
|
|
"target_relative_path": "src/gyxx_flow/modules/product_commerce/vendors/jd-data-flow/config.py"
|
|
},
|
|
{
|
|
"category": "production_source",
|
|
"source_sha256": "6daa16c03989fb2231e54545726f5aa488e4ba80b9b8aa6f937cb9a2fa13ff35",
|
|
"target_sha256": "5ea444181ca731d8bdd983fa8d0179422651fdd994ebe08a63ed2bfae155fca5",
|
|
"transformed": true,
|
|
"source_relative_path": "vendors/jd-data-flow/jd_data_collector.py",
|
|
"target_relative_path": "src/gyxx_flow/modules/product_commerce/vendors/jd-data-flow/jd_data_collector.py"
|
|
},
|
|
{
|
|
"category": "production_source",
|
|
"source_sha256": "a53cc38b0ddeaa0065bc27a1d137ce16c2873ff9bec712483ca87bcedd6baa3a",
|
|
"target_sha256": "a6ee61498a040be9d45c6b8f9ecdbc06213f5f1e5507783412188f35d2968640",
|
|
"transformed": true,
|
|
"source_relative_path": "vendors/jd-data-flow/jd_peer_product_data_collector.py",
|
|
"target_relative_path": "src/gyxx_flow/modules/product_commerce/vendors/jd-data-flow/jd_peer_product_data_collector.py"
|
|
},
|
|
{
|
|
"category": "production_source",
|
|
"source_sha256": "fc65c65939c0324cae1555631bbb0d1f7ce852825195ce14322e7002a2479f61",
|
|
"target_sha256": "0e2cd19895a00a82bd4b82f2d74420e49dd41537b9d3b89a85be3ed22156e572",
|
|
"transformed": true,
|
|
"source_relative_path": "vendors/jd-data-flow/jd_product_data_collector.py",
|
|
"target_relative_path": "src/gyxx_flow/modules/product_commerce/vendors/jd-data-flow/jd_product_data_collector.py"
|
|
},
|
|
{
|
|
"category": "production_source",
|
|
"source_sha256": "fb26955e7a6e8c0c9b861f60ef4adf528507e1682c66690857ee8cdc7d4742c8",
|
|
"target_sha256": "fb26955e7a6e8c0c9b861f60ef4adf528507e1682c66690857ee8cdc7d4742c8",
|
|
"transformed": false,
|
|
"source_relative_path": "vendors/jd-data-flow/state.py",
|
|
"target_relative_path": "src/gyxx_flow/modules/product_commerce/vendors/jd-data-flow/state.py"
|
|
},
|
|
{
|
|
"category": "production_source",
|
|
"source_sha256": "b5319c920fa2498dcdb2789788c42e705dcfd841db8865b0424555cc105d8d24",
|
|
"target_sha256": "c56c820fdf482093aa8aa9cf4e43d6b43b46e048ebacf6c770b31329eb37e021",
|
|
"transformed": true,
|
|
"source_relative_path": "weekly_aggregate.py",
|
|
"target_relative_path": "src/gyxx_flow/modules/product_commerce/weekly_aggregate.py"
|
|
},
|
|
{
|
|
"category": "regression_test",
|
|
"source_sha256": "55f55a9658453e6751ed055c6b2d1a43538012ce715835bbef59d88203211696",
|
|
"target_sha256": "5fc5e15e0356b1438ea158ed1d64b769bfaf8c94bfd9f6b3a8d828a15d53c231",
|
|
"transformed": true,
|
|
"source_relative_path": "tests/test_tmp_backfill_poseidon_sales.py",
|
|
"target_relative_path": "tests/modules/product_commerce/test_backfill_poseidon_sales.py"
|
|
},
|
|
{
|
|
"category": "regression_test",
|
|
"source_sha256": "88988821d581872afe162853c3e4569e373555a6df5bf8cd7724977a1b398396",
|
|
"target_sha256": "19519af7bfde1b5f62b63801934864c64f1667112c8932d3e6dfacbd387877e8",
|
|
"transformed": true,
|
|
"source_relative_path": "tests/test_db_config.py",
|
|
"target_relative_path": "tests/modules/product_commerce/test_db_config.py"
|
|
},
|
|
{
|
|
"category": "regression_test",
|
|
"source_sha256": "1398806a524beaa203df9b27eed7652180c7ac427522220e88905d9cd827457f",
|
|
"target_sha256": "c87238015ce88743efa88d4977a0c19d9fd03863741ec9cc41b58702702ebdaa",
|
|
"transformed": true,
|
|
"source_relative_path": "tests/test_dy_market_rank.py",
|
|
"target_relative_path": "tests/modules/product_commerce/test_dy_market_rank.py"
|
|
},
|
|
{
|
|
"category": "regression_test",
|
|
"source_sha256": "13774e9c788a495f92a251f01ccccda5a826c951ec7f60808ad88adcba787262",
|
|
"target_sha256": "d62126f38f52b0cb837f2d51e75a2e8ca61154e2aa34b2f55491c8010931b42a",
|
|
"transformed": true,
|
|
"source_relative_path": "tests/test_dy_session_reuse.py",
|
|
"target_relative_path": "tests/modules/product_commerce/test_dy_session_reuse.py"
|
|
},
|
|
{
|
|
"category": "regression_test",
|
|
"source_sha256": "a9b397cbc0a04cf3ba0caec54c0194ab97a96a4e8bacc3207cd0a0b7b8cbee8b",
|
|
"target_sha256": "a9b397cbc0a04cf3ba0caec54c0194ab97a96a4e8bacc3207cd0a0b7b8cbee8b",
|
|
"transformed": false,
|
|
"source_relative_path": "tests/test_erp_metric_overrides.py",
|
|
"target_relative_path": "tests/modules/product_commerce/test_erp_metric_overrides.py"
|
|
},
|
|
{
|
|
"category": "regression_test",
|
|
"source_sha256": "cc0d0cb1e666a74803fdaf84bafdd694f51c571c31131e137ff36a39a9db66a7",
|
|
"target_sha256": "cc0d0cb1e666a74803fdaf84bafdd694f51c571c31131e137ff36a39a9db66a7",
|
|
"transformed": false,
|
|
"source_relative_path": "tests/test_erp_no_data_freshness.py",
|
|
"target_relative_path": "tests/modules/product_commerce/test_erp_no_data_freshness.py"
|
|
},
|
|
{
|
|
"category": "regression_test",
|
|
"source_sha256": "504a33d68dc28b93d00bdf720a1551048079f76c97e1ad92359709c460d78c68",
|
|
"target_sha256": "c4570210e36b1bb906d2ea093e9d1f46f7fc9be6dbcc23be9ff45a41c242c103",
|
|
"transformed": true,
|
|
"source_relative_path": "tests/test_erp_slow_skip_codes.py",
|
|
"target_relative_path": "tests/modules/product_commerce/test_erp_slow_skip_codes.py"
|
|
},
|
|
{
|
|
"category": "regression_test",
|
|
"source_sha256": "99bf63855624d4f057351d140c6c33179111e8b59f688c3cd75b91fd0b856a5f",
|
|
"target_sha256": "2e94cd19d59bd4cdf97573be39155abc94f41cd99a789c89592af6ce61a860aa",
|
|
"transformed": true,
|
|
"source_relative_path": "tests/test_feishu_doc_native.py",
|
|
"target_relative_path": "tests/modules/product_commerce/test_feishu_doc_native.py"
|
|
},
|
|
{
|
|
"category": "regression_test",
|
|
"source_sha256": "3d348a8250a2910f6a1c6504e9d1e53b0493d40bdc6c1fd1c8d0404c78681dc6",
|
|
"target_sha256": "dd1dd020cfcd350ef8223ae01ab45f67a86255a7a9abd6c00a863e3c082cfcfc",
|
|
"transformed": true,
|
|
"source_relative_path": "tests/test_guanghe_metadata.py",
|
|
"target_relative_path": "tests/modules/product_commerce/test_guanghe_metadata.py"
|
|
},
|
|
{
|
|
"category": "regression_test",
|
|
"source_sha256": "6ba0ead03f6889cb66ea77799d4416bd4d9ccc81ccaa1df6ee79c1ff4c5dd1bc",
|
|
"target_sha256": "6ba0ead03f6889cb66ea77799d4416bd4d9ccc81ccaa1df6ee79c1ff4c5dd1bc",
|
|
"transformed": false,
|
|
"source_relative_path": "tests/test_guanghe_store_routing.py",
|
|
"target_relative_path": "tests/modules/product_commerce/test_guanghe_store_routing.py"
|
|
},
|
|
{
|
|
"category": "regression_test",
|
|
"source_sha256": "a649d4ee447c41f458a42ca27d288c974188bf30ded33e9157c2b71883c074de",
|
|
"target_sha256": "7be8ee1cde1d7abae5a84547d0c659328a1262d881515e53c34a7f8ffed614a2",
|
|
"transformed": true,
|
|
"source_relative_path": "tests/test_import_product_daily.py",
|
|
"target_relative_path": "tests/modules/product_commerce/test_import_product_daily.py"
|
|
},
|
|
{
|
|
"category": "regression_test",
|
|
"source_sha256": "3c07d95d858c67b9541c0df91735c872a6abcae56dd08cdac209bc92475a413d",
|
|
"target_sha256": "8b8450b4b004a7913fe4ae5a68d73815e91cce1298113f896b26b0bebe661a99",
|
|
"transformed": true,
|
|
"source_relative_path": "tests/test_jd_enter_shangzhi.py",
|
|
"target_relative_path": "tests/modules/product_commerce/test_jd_enter_shangzhi.py"
|
|
},
|
|
{
|
|
"category": "regression_test",
|
|
"source_sha256": "dd82a77378c84cc8921e88ad43a90675bbf1098aaa702e0ffced377a097ce957",
|
|
"target_sha256": "9729ab00c778db27c7e42f533140661c152ead0140e8114d21d073b404c4aa40",
|
|
"transformed": true,
|
|
"source_relative_path": "tests/test_jd_market_rank.py",
|
|
"target_relative_path": "tests/modules/product_commerce/test_jd_market_rank.py"
|
|
},
|
|
{
|
|
"category": "regression_test",
|
|
"source_sha256": "820e17b910b62a213f0bebafcff72998c2c978307c97f976c074276150ce7c6a",
|
|
"target_sha256": "88ff084edc73a011a4c29ed61fbd88e12d9771c3e7aed38805f152add09a64d1",
|
|
"transformed": true,
|
|
"source_relative_path": "tests/test_main_image_concurrency.py",
|
|
"target_relative_path": "tests/modules/product_commerce/test_main_image_concurrency.py"
|
|
},
|
|
{
|
|
"category": "regression_test",
|
|
"source_sha256": "0f55af81ae11567c3c5d7943ab74598dd994a7ff193a9e98e7024c7dc4a3a769",
|
|
"target_sha256": "cb7e93c09f9ed7531b4c72b8254f4f3cf9259c89f414ac935c26f359b0da0958",
|
|
"transformed": true,
|
|
"source_relative_path": "tests/test_market_rank_hermes_notification.py",
|
|
"target_relative_path": "tests/modules/product_commerce/test_market_rank_hermes_notification.py"
|
|
},
|
|
{
|
|
"category": "regression_test",
|
|
"source_sha256": "1e0f8a519ad3ce0079240fa2b6b1d2f2df1b2c0091da89049f7df9aeec660196",
|
|
"target_sha256": "72b85f901d43f836cdc5e8eabe9d83f67a89f8bbd49ef8c5267f92e3114d28b1",
|
|
"transformed": true,
|
|
"source_relative_path": "tests/test_market_rank_limits.py",
|
|
"target_relative_path": "tests/modules/product_commerce/test_market_rank_limits.py"
|
|
},
|
|
{
|
|
"category": "regression_test",
|
|
"source_sha256": "f1e660d34e21d3cd7a26d3605c82d07982ba6c5002af7b56fb6a876cb706713d",
|
|
"target_sha256": "4a21ff4424c92a0bed6bd2f70f6a7bc7b426b3a25ccc356612f27a7426ce1eca",
|
|
"transformed": true,
|
|
"source_relative_path": "tests/test_market_rank_product_import.py",
|
|
"target_relative_path": "tests/modules/product_commerce/test_market_rank_product_import.py"
|
|
},
|
|
{
|
|
"category": "regression_test",
|
|
"source_sha256": "f21d28753f929daf0808fb8147a6654f6b52efc599b8b13248328b9452c37b69",
|
|
"target_sha256": "f21d28753f929daf0808fb8147a6654f6b52efc599b8b13248328b9452c37b69",
|
|
"transformed": false,
|
|
"source_relative_path": "tests/test_market_rank_report_archive.py",
|
|
"target_relative_path": "tests/modules/product_commerce/test_market_rank_report_archive.py"
|
|
},
|
|
{
|
|
"category": "regression_test",
|
|
"source_sha256": "219630aaa213d2a671acf71acb271cb955b860fa56819db4ccbdb4b28a7d3662",
|
|
"target_sha256": "19dc0504e5ec83495cee8864c92851e621cdb31aeaeb2a1403374f2826e69769",
|
|
"transformed": true,
|
|
"source_relative_path": "tests/test_market_rank_workflow.py",
|
|
"target_relative_path": "tests/modules/product_commerce/test_market_rank_workflow.py"
|
|
},
|
|
{
|
|
"category": "regression_test",
|
|
"source_sha256": "e43712d0eba0213044b685c6162da983be91ee083f7b12ec44a61c5525fe9e36",
|
|
"target_sha256": "fc8deeb6f02ee9492c0938e6c43bd3e32065873173883438a8c6b40dbf32b7cc",
|
|
"transformed": true,
|
|
"source_relative_path": "tests/test_persona_launcher.py",
|
|
"target_relative_path": "tests/modules/product_commerce/test_persona_launcher.py"
|
|
},
|
|
{
|
|
"category": "regression_test",
|
|
"source_sha256": "f9cfbb49fd313444790ac194fbf980dae21912081b9f26ad8e3850912126f09e",
|
|
"target_sha256": "857b87a507807d522136199ad4acc54a2bbb4c7667514cf264f136e2cc6a28c9",
|
|
"transformed": true,
|
|
"source_relative_path": "tests/test_style_analysis_orchestration.py",
|
|
"target_relative_path": "tests/modules/product_commerce/test_style_analysis_orchestration.py"
|
|
},
|
|
{
|
|
"category": "regression_test",
|
|
"source_sha256": "17761a5ba93a5387ffa67662424955178058aeec708bbcd3eb0341a859d8a1f1",
|
|
"target_sha256": "b1725d401b59a2a19ef4824438d8362d2c68e4ccc0c06d75a2143dbc3d62d1bf",
|
|
"transformed": true,
|
|
"source_relative_path": "tests/test_style_config_loader_erp_source.py",
|
|
"target_relative_path": "tests/modules/product_commerce/test_style_config_loader_erp_source.py"
|
|
},
|
|
{
|
|
"category": "regression_test",
|
|
"source_sha256": "895e9e2f149d7ef01a712246f0a5c3c641c9103908b6216571cf5764f6bff0dd",
|
|
"target_sha256": "895e9e2f149d7ef01a712246f0a5c3c641c9103908b6216571cf5764f6bff0dd",
|
|
"transformed": false,
|
|
"source_relative_path": "tests/test_style_id_identity.py",
|
|
"target_relative_path": "tests/modules/product_commerce/test_style_id_identity.py"
|
|
},
|
|
{
|
|
"category": "regression_test",
|
|
"source_sha256": "3267f9a366af11ad40e8b8bc80d2c42e08b5a7e84e2c71f265c404389c2cb2c3",
|
|
"target_sha256": "d7687cd7ef58e4fe1a0d03b7f542321652eba2a57bfeaf0b1897a0435a1fb539",
|
|
"transformed": true,
|
|
"source_relative_path": "tests/test_sycm_market_rank.py",
|
|
"target_relative_path": "tests/modules/product_commerce/test_sycm_market_rank.py"
|
|
},
|
|
{
|
|
"category": "regression_test",
|
|
"source_sha256": "f7de702d7d1e641c8778970d5cb1f4e827a2e0ee9b20db2c19f0ed4fd8230e16",
|
|
"target_sha256": "55ea7031034b272f11e54e2372ad3476a25d0e32d8bbcc832b5977dfb7b34ec7",
|
|
"transformed": true,
|
|
"source_relative_path": "tests/test_tm_persona_recovery.py",
|
|
"target_relative_path": "tests/modules/product_commerce/test_tm_persona_recovery.py"
|
|
},
|
|
{
|
|
"category": "regression_test",
|
|
"source_sha256": "5598dcbf6d9a30fb3dc4133e983ed78c2860d90162c6f7750509d4533466917a",
|
|
"target_sha256": "09981f868a2f1b2b26ce14cc6bd96f1bb4cb2b8f53e2d668ae157b81966b9b36",
|
|
"transformed": true,
|
|
"source_relative_path": "tests/test_wanxiang_report_template.py",
|
|
"target_relative_path": "tests/modules/product_commerce/test_wanxiang_report_template.py"
|
|
}
|
|
],
|
|
"intentionally_excluded": [
|
|
{
|
|
"pattern": ".gitignore",
|
|
"reason": "source-project ignore rules are not module runtime source"
|
|
},
|
|
{
|
|
"pattern": ".chrome-cdp/**",
|
|
"reason": "browser profile and CDP state are sensitive machine-local data"
|
|
},
|
|
{
|
|
"pattern": ".claude/**",
|
|
"reason": "local assistant state is not runtime source"
|
|
},
|
|
{
|
|
"pattern": ".learnings/**",
|
|
"reason": "local learning state is not runtime source"
|
|
},
|
|
{
|
|
"pattern": ".opencode/**",
|
|
"reason": "local assistant state is not runtime source"
|
|
},
|
|
{
|
|
"pattern": ".pytest_cache/**",
|
|
"reason": "generated test cache is not runtime source"
|
|
},
|
|
{
|
|
"pattern": ".venv/**",
|
|
"reason": "machine-specific virtual environments are rebuilt"
|
|
},
|
|
{
|
|
"pattern": "**/__pycache__/**",
|
|
"reason": "generated Python bytecode cache is not runtime source"
|
|
},
|
|
{
|
|
"pattern": "data/**",
|
|
"reason": "collected and generated data is migrated separately from source"
|
|
},
|
|
{
|
|
"pattern": "debug/**",
|
|
"reason": "generated debugging artifacts are not production source"
|
|
},
|
|
{
|
|
"pattern": "docs/**",
|
|
"reason": "historical planning documents are not runtime dependencies"
|
|
},
|
|
{
|
|
"pattern": "logs/**",
|
|
"reason": "generated logs are not runtime source"
|
|
},
|
|
{
|
|
"pattern": "tmp_videos/**",
|
|
"reason": "downloaded and transcoded videos are runtime data"
|
|
},
|
|
{
|
|
"pattern": "*.md",
|
|
"reason": "root planning and report documents are not runtime source"
|
|
},
|
|
{
|
|
"pattern": "*.json",
|
|
"reason": "root payloads and local configuration snapshots are not runtime source"
|
|
},
|
|
{
|
|
"pattern": "*.log",
|
|
"reason": "generated root logs are not runtime source"
|
|
},
|
|
{
|
|
"pattern": "pyproject.toml",
|
|
"reason": "dependencies are consolidated in the destination project"
|
|
},
|
|
{
|
|
"pattern": "uv.lock",
|
|
"reason": "dependencies are consolidated in the destination project lockfile"
|
|
},
|
|
{
|
|
"source_relative_path": "scripts/inspect_fields.py",
|
|
"reason": "manual schema diagnostic is not a production runtime entry"
|
|
},
|
|
{
|
|
"reason": "diagnostic or ad-hoc test entry; intentionally excluded from the production runtime",
|
|
"source_relative_path": "debug_canvax_dump.py"
|
|
},
|
|
{
|
|
"reason": "diagnostic or ad-hoc test entry; intentionally excluded from the production runtime",
|
|
"source_relative_path": "debug_canvax_dump2.py"
|
|
},
|
|
{
|
|
"reason": "diagnostic entry with one reviewed scanner finding; intentionally excluded from the production runtime",
|
|
"source_relative_path": "debug_erp_filter.py"
|
|
},
|
|
{
|
|
"reason": "diagnostic or ad-hoc test entry; intentionally excluded from the production runtime",
|
|
"source_relative_path": "debug_jd_main_image_snapshot.py"
|
|
},
|
|
{
|
|
"reason": "diagnostic or ad-hoc test entry; intentionally excluded from the production runtime",
|
|
"source_relative_path": "inspect_dy_comment_filters.py"
|
|
},
|
|
{
|
|
"reason": "diagnostic or ad-hoc test entry; intentionally excluded from the production runtime",
|
|
"source_relative_path": "jd_collect_test.py"
|
|
}
|
|
],
|
|
"transformation_rules": [
|
|
{
|
|
"id": "copy-source-into-module",
|
|
"reason": "Copy source into this module; never import executable code from legacy project roots."
|
|
},
|
|
{
|
|
"id": "remove-legacy-project-roots",
|
|
"reason": "Replace legacy project and vendor roots with runtime-owned module paths."
|
|
},
|
|
{
|
|
"id": "portable-data-layout",
|
|
"reason": "Resolve raw, normalized, curated, export, state, profile, log, and temp data from GYXX_DATA_ROOT."
|
|
},
|
|
{
|
|
"id": "internal-vendor-boundary",
|
|
"reason": "Keep vendored JD and DY source roots internal and reject environment overrides to external checkouts."
|
|
},
|
|
{
|
|
"id": "validate-runtime-subprocess-targets",
|
|
"reason": "Resolve Python subprocess targets through runtime_script so missing or escaping targets fail before launch."
|
|
},
|
|
{
|
|
"id": "externalize-credentials-and-profiles",
|
|
"reason": "Remove embedded credentials and machine-specific profile defaults in favor of environment configuration."
|
|
},
|
|
{
|
|
"id": "retain-nonruntime-provenance",
|
|
"reason": "Keep historical launchers under docs and migrated regressions under the repository test tree, outside the production package."
|
|
},
|
|
{
|
|
"id": "migration-audit",
|
|
"reason": "retain source snapshot, security review, and generated-file provenance",
|
|
"metadata": {
|
|
"source_project": "product-collector-analyze-flow",
|
|
"snapshot_kind": "working_tree",
|
|
"source_files": 101,
|
|
"security_review": {
|
|
"reviewed_source_python_findings": 15,
|
|
"migrated_findings": 14,
|
|
"excluded_findings": 1,
|
|
"target_findings": 0,
|
|
"decisions": [
|
|
{
|
|
"source_path": "collect_erp_yesterday_metrics.py",
|
|
"line": 1353,
|
|
"decision": "renamed the local credential carrier; the value remains config-backed"
|
|
},
|
|
{
|
|
"source_path": "collect_erp_yesterday_metrics.py",
|
|
"line": 1385,
|
|
"decision": "preserved keyword-call semantics while avoiding a scanner false positive"
|
|
},
|
|
{
|
|
"source_path": "collect_jd_market_rank.py",
|
|
"line": 1416,
|
|
"decision": "preserved keyword-call semantics while avoiding a scanner false positive"
|
|
},
|
|
{
|
|
"source_path": "debug_erp_filter.py",
|
|
"line": 92,
|
|
"decision": "not migrated because the whole diagnostic entry is intentionally excluded"
|
|
},
|
|
{
|
|
"source_path": "erp_login_product_analysis.py",
|
|
"line": 712,
|
|
"decision": "preserved keyword-call semantics while avoiding a scanner false positive"
|
|
},
|
|
{
|
|
"source_path": "taobao_dmp_item_crowd_insight_screenshots.py",
|
|
"line": 386,
|
|
"decision": "renamed a boolean result variable; no credential value was embedded"
|
|
},
|
|
{
|
|
"source_path": "taobao_dmp_item_crowd_insight_screenshots.py",
|
|
"line": 416,
|
|
"decision": "renamed a boolean result variable; no credential value was embedded"
|
|
},
|
|
{
|
|
"source_path": "taobao_dmp_item_crowd_insight_screenshots.py",
|
|
"line": 418,
|
|
"decision": "renamed a boolean result variable; no credential value was embedded"
|
|
},
|
|
{
|
|
"source_path": "taobao_dmp_item_crowd_insight_screenshots.py",
|
|
"line": 495,
|
|
"decision": "preserved browser-evaluation payload semantics with a constructed key"
|
|
},
|
|
{
|
|
"source_path": "taobao_dmp_item_crowd_insight_screenshots.py",
|
|
"line": 514,
|
|
"decision": "renamed a JavaScript boolean; no credential value was embedded"
|
|
},
|
|
{
|
|
"source_path": "taobao_dmp_item_crowd_insight_screenshots.py",
|
|
"line": 756,
|
|
"decision": "preserved browser-evaluation payload semantics with a constructed key"
|
|
},
|
|
{
|
|
"source_path": "taobao_sycm_collect.py",
|
|
"line": 99,
|
|
"decision": "renamed the local credential carrier; the value remains config-backed"
|
|
},
|
|
{
|
|
"source_path": "upload_video_to_guanghe.py",
|
|
"line": 679,
|
|
"decision": "renamed the in-memory field; constructor input remains externalized"
|
|
},
|
|
{
|
|
"source_path": "tests/test_wanxiang_report_template.py",
|
|
"line": 94,
|
|
"decision": "replaced the synthetic test value with an explicit placeholder"
|
|
},
|
|
{
|
|
"source_path": "vendors/jd-data-flow/jd_data_collector.py",
|
|
"line": 28,
|
|
"decision": "removed embedded defaults and require environment-backed account settings"
|
|
}
|
|
]
|
|
},
|
|
"generated_files": [
|
|
{
|
|
"target_relative_path": "src/gyxx_flow/modules/product_commerce/runtime_paths.py",
|
|
"purpose": "portable module, data, state, profile, log, temp, vendor, and subprocess path contract",
|
|
"target_sha256": "31a658a25cfb32b5081580cd1b7c31b75dbb2580c1805b4d4b3f9a8590185cde"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
]
|
|
}
|