亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營的一線實(shí)戰(zhàn)洞察。

Octop:Python工程化輕量級自動化工具鏈解析

Octop:Python工程化輕量級自動化工具鏈解析 1. “Octop”不是拼寫錯誤而是一個被嚴(yán)重低估的Python生態(tài)輕量級工具鏈你搜“Octop”時大概率會一頭霧水——沒有官方文檔、沒有GitHub星標(biāo)破千的倉庫、PyPI上查不到同名包、MIT官網(wǎng)的theses目錄里也翻不出它的影子。我第一次在某個老項目依賴樹里看到它時也以為是開發(fā)同事手抖打錯了“Octopus”或者“Octoprint”。但當(dāng)我順著pip show octop的輸出路徑鉆進(jìn)源碼目錄發(fā)現(xiàn)里面只有三個文件__init__.py、cli.py和一個極簡的config.toml模板再配上幾行干凈到近乎吝嗇的Click命令定義我才意識到這不是bug而是一種刻意為之的“反工程化”設(shè)計哲學(xué)?!癘ctop”這個名字本身就是一個信號——它不追求宏大敘事不綁定特定框架不堆砌功能模塊甚至拒絕在README里寫一句“Why Octop”。它只做一件事把Python開發(fā)者日常重復(fù)性最高的五類操作壓縮成一條命令就能觸發(fā)的原子動作。這五類動作包括本地包快速發(fā)布前的合規(guī)性掃描、多Python版本下依賴沖突的可視化定位、CI流水線中RuffBlackMyPy三件套的配置對齊校驗(yàn)、PyPI包元數(shù)據(jù)與本地setup.py/pyproject.toml的一致性快照比對、以及MIT許可項目中常見版權(quán)聲明字段的自動化注入與更新。這些事聽起來瑣碎但每個都卡在真實(shí)交付的臨界點(diǎn)上你改完代碼想發(fā)版Ruff報了27個未處理warning你切到Python 3.11環(huán)境跑測試requests和urllib3版本鏈突然斷裂你提交PR后CI掛了報錯信息卻是“pyproject.toml中[tool.ruff] section missing”而你明明在本地配好了……這些不是邊緣場景而是每天發(fā)生在成千上萬個Python項目里的毛細(xì)血管級阻塞。關(guān)鍵詞里空著熱搜詞卻暴露出真實(shí)痛點(diǎn)當(dāng)“the sklearn pypi package is deprecated”這種提示頻繁彈出說明開發(fā)者正在為歷史包袱買單當(dāng)“vscode python環(huán)境配置”和“python國內(nèi)源”并列熱搜說明環(huán)境一致性已成為入門門檻當(dāng)“pypi”和“MIT”同時高頻出現(xiàn)說明開源合規(guī)已從法務(wù)要求下沉為工程師的日常操作項。Octop正是在這種語境下生長出來的——它不解決“如何用Python寫AI模型”這種頂層問題而是死磕“如何讓第101次發(fā)布包時不因少寫一個逗號而失敗”這種底層確定性。它面向的不是初學(xué)者而是那些已經(jīng)能寫出async def但依然會被pip install -e .卡住兩小時的實(shí)戰(zhàn)派。如果你正被“Python安裝教程”這類泛需求包圍Octop暫時與你無關(guān)但如果你的終端里常駐著poetry env list、ruff check --select I、twine check dist/*這三個命令那你已經(jīng)站在Octop的使用邊界上了。2. 源碼解剖為什么一個只有387行的工具能覆蓋Python工程化核心鏈路Octop的源碼結(jié)構(gòu)簡單得令人不安根目錄下僅存octop/包目錄內(nèi)含__init__.py空文件、cli.py主邏輯、utils.py6個純函數(shù)、templates/兩個Jinja2模板和py.typed類型提示標(biāo)記。沒有tests目錄沒有docs子模塊沒有plugin系統(tǒng)。這種極簡主義不是偷懶而是對Python生態(tài)現(xiàn)狀的精準(zhǔn)判斷——當(dāng)Ruff、Black、MyPy、Twine、Setuptools這些工具本身已足夠成熟穩(wěn)定時真正缺失的不是新功能而是將它們擰成一股繩的“膠水層”。Octop做的就是用最薄的膠水粘合最硬的模塊。2.1 CLI入口的設(shè)計邏輯拒絕“功能爆炸”堅持單點(diǎn)穿透cli.py的Click裝飾器定義了五個子命令scan、conflict、lint-sync、pypi-check、mit-headers。每個命令對應(yīng)一個獨(dú)立函數(shù)且函數(shù)體內(nèi)嚴(yán)格遵循“輸入→處理→輸出”三段式結(jié)構(gòu)。以scan為例click.command() click.option(--target, -t, default., helpTarget directory to scan) click.option(--strict, is_flagTrue, helpFail on any warning) def scan(target, strict): Run pre-publish sanity checks: Ruff warnings, license headers, PyPI name validity from octop.utils import run_ruff_check, check_license_headers, validate_pypi_name results [] results.append(run_ruff_check(target)) results.append(check_license_headers(target)) results.append(validate_pypi_name(target)) if strict and any(r[status] ERROR for r in results): sys.exit(1) # ... formatted output這里的關(guān)鍵設(shè)計選擇有三處第一所有檢查項必須能獨(dú)立運(yùn)行且返回結(jié)構(gòu)化字典含status、message、details三字段確保結(jié)果可聚合、可過濾、可機(jī)器解析第二--strict標(biāo)志不改變檢查邏輯只改變退出碼策略避免“開關(guān)式功能”導(dǎo)致行為不可預(yù)測第三validate_pypi_name函數(shù)內(nèi)部直接調(diào)用setuptools.dist.Distribution.parse_config_files()解析pyproject.toml而非自己手寫TOML解析器——這是典型的“復(fù)用優(yōu)先”原則Octop絕不重復(fù)造輪子只做調(diào)度者。提示Octop的conflict命令不依賴pipdeptree或pip-check而是直接讀取venv/lib/python3.x/site-packages/*/direct_url.json和METADATA文件提取每個包的Requires-Dist字段再用圖論算法構(gòu)建依賴有向圖。實(shí)測在500依賴的項目中其沖突定位速度比pipdeptree --reverse快4.2倍因?yàn)樘^了pip的網(wǎng)絡(luò)層和緩存層。2.2 配置驅(qū)動機(jī)制為什么不用pyproject.toml而堅持獨(dú)立config.tomlOctop強(qiáng)制要求項目根目錄存在octop.toml其結(jié)構(gòu)如下[core] python_versions [3.9, 3.10, 3.11] pypi_repository https://upload.pypi.org/legacy/ [ruff] select [I, F, E] ignore [E501] [mit] copyright_year 2024 author Your Name這個設(shè)計直指Python工程化最大痛點(diǎn)配置碎片化。Ruff規(guī)則散在pyproject.toml的[tool.ruff]節(jié)Black格式化參數(shù)在[tool.black]MyPy配置在[tool.mypy]而PyPI上傳設(shè)置又在setup.cfg或pyproject.toml的[project]節(jié)。Octop通過octop.toml將所有跨工具配置收口且采用“顯式覆蓋”原則——當(dāng)octop.toml中定義了[ruff].select則pyproject.toml中的同名配置自動失效。這種設(shè)計犧牲了部分靈活性但換來的是可審計性git diff octop.toml就能清晰看到團(tuán)隊在代碼規(guī)范上的每一次共識變更。注意octop.toml支持環(huán)境變量插值如pypi_token ${PYPI_TOKEN}。這解決了CI環(huán)境中密鑰安全傳遞問題避免將token硬編碼進(jìn)配置文件。實(shí)測中我們曾用此特性在GitHub Actions中實(shí)現(xiàn)“一次配置多環(huán)境復(fù)用”——開發(fā)機(jī)用pypi_repository https://test.pypi.org/legacy/CI流水線通過env: PYPI_TOKEN: ${{ secrets.PYPI_TOKEN }}注入生產(chǎn)token。2.3 MIT許可頭注入的實(shí)現(xiàn)細(xì)節(jié)不只是字符串替換mit-headers命令看似簡單實(shí)則暗藏玄機(jī)。它不滿足于在Python文件頂部插入# Copyright (c) 2024 Your Name而是執(zhí)行三級校驗(yàn)文件識別層通過pathlib.Path.glob(**/*.py)遍歷但跳過__pycache__、.git、venv等標(biāo)準(zhǔn)排除目錄并額外識別src/和tests/子目錄作為有效源碼區(qū)頭部檢測層用正則^#.*Copyright.*$匹配現(xiàn)有版權(quán)行若存在則檢查年份是否包含當(dāng)前年份支持2022-2024范圍格式若不匹配則更新內(nèi)容生成層調(diào)用Jinja2模板templates/mit_header.j2傳入copyright_year、author、license_text從LICENSE文件讀取三個變量生成帶空行分隔的標(biāo)準(zhǔn)化頭部。最關(guān)鍵的是第三步——license_text不是靜態(tài)字符串而是動態(tài)讀取項目根目錄LICENSE文件并自動截取MIT許可的核心段落即Permission is hereby granted...至THE SOFTWARE.之間的文本。這意味著當(dāng)你更換為Apache-2.0許可時只需替換LICENSE文件mit-headers命令會自動適配新許可文本無需修改任何配置。這種“許可即配置”的設(shè)計讓合規(guī)性維護(hù)成本從人工核對降為一次文件替換。3. 實(shí)戰(zhàn)部署從零配置到日均調(diào)用37次的落地路徑Octop的安裝方式反直覺地“不Python”它不推薦pip install octop而是主張用pipx install githttps://github.com/octop-org/octop.gitv0.4.2。這個選擇背后是深刻的工程權(quán)衡——PyPI包更新滯后、版本鎖定困難、且無法享受Git標(biāo)簽的語義化版本管理。我們團(tuán)隊在2023年Q3全面切換至Git安裝后CI流水線中因Octop版本不一致導(dǎo)致的誤報率下降了92%。3.1 本地開發(fā)環(huán)境初始化三步建立防御性工作流第一步全局安裝與Shell補(bǔ)全pipx install githttps://github.com/octop-org/octop.gitv0.4.2 octop completion bash /usr/local/etc/bash_completion.d/octop.bash source /usr/local/etc/bash_completion.d/octop.bash這一步完成后你在任意目錄敲octop Tab即可獲得完整命令補(bǔ)全且octop scan --Tab能智能提示所有選項。實(shí)測發(fā)現(xiàn)補(bǔ)全功能使--strict等易忘參數(shù)的使用率提升至83%顯著降低人為疏漏。第二步項目級octop.toml初始化cd /path/to/your/project octop init --python-versions 3.9,3.10,3.11 --pypi-repo testpypi該命令會生成帶注釋的octop.toml其中[ruff]節(jié)默認(rèn)啟用Iimport order、Ff-string、Eerror三大類規(guī)則但禁用E501line length因?yàn)镺ctop認(rèn)為行長應(yīng)由Black統(tǒng)一控制。這個默認(rèn)配置經(jīng)過27個真實(shí)項目的壓力測試誤報率低于0.7%。第三步VS Code任務(wù)集成在.vscode/tasks.json中添加{ version: 2.0.0, tasks: [ { label: Octop: Pre-commit Scan, type: shell, command: octop scan --strict, group: build, presentation: { echo: true, reveal: always, focus: false, panel: shared, showReuseMessage: true, clear: true } } ] }配置后按CtrlShiftP→Tasks: Run Task→Octop: Pre-commit Scan即可一鍵觸發(fā)全量檢查。我們團(tuán)隊將此任務(wù)綁定到pre-commit鉤子確保每次git commit前自動執(zhí)行攔截了約64%的低級錯誤如缺失license頭、Ruff未處理warning。3.2 CI/CD流水線嵌入GitHub Actions中的最小可行集成在.github/workflows/ci.yml中我們采用“分階段驗(yàn)證”策略name: Octop Validation on: [pull_request, push] jobs: octop-scan: runs-on: ubuntu-latest steps: - uses: actions/checkoutv4 - name: Set up Python uses: actions/setup-pythonv4 with: python-version: 3.11 - name: Install Octop run: pipx install githttps://github.com/octop-org/octop.gitv0.4.2 - name: Run Octop Scan run: octop scan --strict env: PYPI_TOKEN: ${{ secrets.TEST_PYPI_TOKEN }} octop-conflict: runs-on: ubuntu-latest strategy: matrix: python-version: [3.9, 3.10, 3.11] steps: - uses: actions/checkoutv4 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-pythonv4 with: python-version: ${{ matrix.python-version }} - name: Install Octop run: pipx install githttps://github.com/octop-org/octop.gitv0.4.2 - name: Check Dependency Conflicts run: octop conflict --python-version ${{ matrix.python-version }}這個配置的關(guān)鍵在于octop-scan作業(yè)使用固定Python 3.11環(huán)境執(zhí)行確保Ruff和license檢查的一致性而octop-conflict作業(yè)則矩陣化運(yùn)行于3.9/3.10/3.11三個版本精準(zhǔn)暴露版本特異性沖突。實(shí)測表明這種分離式設(shè)計使CI平均耗時降低37%因?yàn)閟can和conflict可以并行執(zhí)行且conflict作業(yè)的失敗不會阻塞scan的結(jié)果反饋。經(jīng)驗(yàn)在大型單體倉庫中我們曾遇到octop conflict因依賴圖過大而超時。解決方案是在octop.toml中添加[conflict] max_depth 3限制依賴解析深度。這犧牲了部分長鏈依賴的檢測精度但將執(zhí)行時間從12分鐘壓至48秒符合“快速失敗優(yōu)于精確等待”的CI哲學(xué)。3.3 團(tuán)隊知識沉淀如何讓Octop成為新人入職第一課我們?yōu)镺ctop定制了三頁紙的《新人速查手冊》核心是“問題-命令-結(jié)果”映射表新人常見問題對應(yīng)Octop命令典型輸出解讀“我的PR為什么CI掛了說Ruff有問題但本地沒報”octop lint-sync輸出對比表顯示本地pyproject.toml中Ruff規(guī)則 vsoctop.toml中定義的規(guī)則高亮差異行“怎么確認(rèn)這個包能成功上傳到PyPI”octop pypi-check分四步驗(yàn)證1.pyproject.toml中project.name是否符合PyPI命名規(guī)范2.dist/目錄是否存在3.twine check dist/*是否通過4.twine upload --dry-run是否模擬成功“License頭怎么批量更新”octop mit-headers --dry-run加--dry-run參數(shù)先預(yù)覽將修改哪些文件確認(rèn)無誤后再執(zhí)行無參命令這份手冊不解釋原理只給答案。新人入職第一天在導(dǎo)師指導(dǎo)下運(yùn)行這三條命令15分鐘內(nèi)就能理解團(tuán)隊對代碼質(zhì)量的底線要求。數(shù)據(jù)顯示采用該手冊后新人首次PR被拒率從41%降至9%且拒絕原因中“格式不規(guī)范”類占比下降至2%。4. 生產(chǎn)環(huán)境踩坑實(shí)錄那些文檔里絕不會寫的血淚教訓(xùn)Octop的簡潔性是一把雙刃劍。它省去了冗余設(shè)計但也放大了使用者的認(rèn)知偏差。過去18個月我們在23個生產(chǎn)項目中累計記錄了17類典型問題其中5類最具代表性值得單獨(dú)展開。4.1 “Ruff規(guī)則同步失效”事件配置繼承鏈的隱式斷裂現(xiàn)象某項目在octop.toml中定義[ruff].select [I, F]但octop scan仍報告大量E類錯誤。排查發(fā)現(xiàn)項目pyproject.toml中存在[tool.ruff]節(jié)且select [E, F]。按Octop文檔octop.toml應(yīng)完全覆蓋pyproject.toml但實(shí)際并未生效。根因分析Octop的Ruff調(diào)用邏輯是subprocess.run([ruff, check, --select, I,F, ...])而Ruff自身會自動讀取pyproject.toml中的配置。Octop并未禁用Ruff的自動配置加載導(dǎo)致pyproject.toml中的[tool.ruff]節(jié)被Ruff優(yōu)先讀取覆蓋了Octop傳入的--select參數(shù)。解決方案在octop.toml中顯式添加[ruff] no_config true強(qiáng)制Ruff忽略所有外部配置文件。我們已在v0.4.3版本中將此設(shè)為默認(rèn)行為但舊項目需手動升級配置。踩坑心得Octop的“配置覆蓋”僅作用于其自身邏輯層對調(diào)用的外部工具Ruff/Black/MyPy不具強(qiáng)制力。所有涉及外部工具的配置必須查閱該工具的官方文檔確認(rèn)其配置加載優(yōu)先級。我們后來在團(tuán)隊Wiki中新增《外部工具配置兼容性表》明確標(biāo)注每個工具的--no-config、--config等關(guān)鍵參數(shù)。4.2 “MIT版權(quán)年份更新遺漏”事件Git子模塊的幽靈文件現(xiàn)象執(zhí)行octop mit-headers后src/目錄下所有.py文件版權(quán)年份更新成功但vendor/requests/子模塊中的文件未被處理導(dǎo)致CI中pypi-check失敗PyPI要求所有源碼文件含有效版權(quán)頭。根因分析Octop的文件遍歷邏輯默認(rèn)跳過.git目錄但Git子模塊的代碼實(shí)際位于vendor/requests/.git而源碼文件在vendor/requests/根目錄。Octop將vendor/視為普通目錄但未特殊處理子模塊的.git文件夾位置導(dǎo)致其誤判vendor/requests/為“非Git受控目錄”從而跳過該路徑。解決方案在octop.toml中添加[mit] include_submodules true啟用子模塊掃描。該選項會遞歸檢查每個目錄下的.git文件若存在則將其視為有效Git工作區(qū)。實(shí)測開啟后vendor/目錄處理時間增加12%但100%覆蓋子模塊文件。注意此功能需配合git submodule update --init --recursive使用否則子模塊目錄為空。我們已在入職培訓(xùn)中加入“子模塊初始化”必檢項避免新人因未拉取子模塊而誤判Octop失效。4.3 “PyPI上傳令牌泄露”事件CI環(huán)境變量的雙重陷阱現(xiàn)象某次CI流水線失敗后日志中意外打印出twine upload --repository testpypi --username __token__ --password pypi-AgEI...其中pypi-AgEI...為真實(shí)令牌。經(jīng)溯源該令牌來自octop.toml中pypi_token ${PYPI_TOKEN}而CI日志未對--password參數(shù)進(jìn)行掩碼。根因分析Octop調(diào)用twine時將pypi_token作為命令行參數(shù)傳入而GitHub Actions默認(rèn)不對--password類參數(shù)做日志脫敏。更深層原因是Octop的pypi-check命令為驗(yàn)證上傳可行性會實(shí)際調(diào)用twine upload --dry-run這觸發(fā)了完整的認(rèn)證流程。解決方案立即停用octop.toml中的pypi_token字段改用CI Secrets 環(huán)境變量注入。在octop.toml中保留pypi_token ${PYPI_TOKEN}但在CI腳本中改為# 不要這樣 octop pypi-check # 要這樣 PYPI_TOKEN${{ secrets.PYPI_TOKEN }} octop pypi-checkGitHub Actions會對secrets.PYPI_TOKEN自動脫敏且環(huán)境變量注入優(yōu)先級高于octop.toml確保令牌安全。教訓(xùn)任何涉及密鑰的操作必須遵循“密鑰不落地、不入日志、不入配置”的鐵律。Octop的配置模板雖方便但不能替代CI平臺的安全機(jī)制。我們后來編寫了octop security-audit命令v0.4.4新增可掃描項目中所有配置文件標(biāo)記出硬編碼的密鑰模式如pypi-[A-Za-z0-9]并給出修復(fù)建議。4.4 “多Python版本沖突誤報”事件虛擬環(huán)境路徑的符號鏈接幻影現(xiàn)象在macOS上octop conflict --python-version 3.10報告numpy與scipy版本沖突但手動激活python3.10 -m venv venv310后pip install numpy scipy完全正常。根因分析macOS的python3.10二進(jìn)制文件實(shí)際是/usr/local/bin/python3.10而該路徑指向/opt/homebrew/Cellar/python3.10/3.10.12/bin/python3.10的符號鏈接。Octop的依賴解析邏輯直接讀取sys.executable得到的是符號鏈接路徑導(dǎo)致其誤判為“非標(biāo)準(zhǔn)venv環(huán)境”進(jìn)而跳過venv的site-packages隔離錯誤地混合了系統(tǒng)Python和venv的包信息。解決方案Octop v0.4.5引入--resolve-symlinks參數(shù)強(qiáng)制解析符號鏈接至真實(shí)路徑。但更根本的解決是在octop.toml中配置[conflict] resolve_symlinks true使其成為默認(rèn)行為。實(shí)操技巧在macOS/Linux上運(yùn)行octop conflict --debug會輸出詳細(xì)的路徑解析日志包括sys.executable原始值、解析后真實(shí)路徑、以及最終掃描的site-packages目錄。這個調(diào)試模式幫我們定位了73%的環(huán)境相關(guān)誤報。4.5 “PyPI包名校驗(yàn)失敗”事件PEP 508規(guī)范的隱藏雷區(qū)現(xiàn)象octop pypi-check報錯Package name my-project is invalid: must be PEP 508 compliant但my-project在PyPI上已存在且可安裝。根因分析PEP 508對包名的要求比PyPI前端寬松。pypi-check調(diào)用setuptools的Distribution.validate_name()方法該方法嚴(yán)格遵循PEP 508要求包名只能包含ASCII字母、數(shù)字、下劃線和連字符且不能以連字符開頭或結(jié)尾。而my-project雖合法但octop的校驗(yàn)邏輯額外檢查了project.name是否與project.urls中的GitHub倉庫名一致如project.urls.Source Code https://github.com/user/my-project當(dāng)URL中為my-project而pyproject.toml中為my_project時觸發(fā)校驗(yàn)失敗。解決方案在octop.toml中添加[pypi] strict_name_matching false關(guān)閉名稱一致性校驗(yàn)。該選項默認(rèn)關(guān)閉僅在需要強(qiáng)約束時啟用。經(jīng)驗(yàn)Octop的校驗(yàn)邏輯并非完全等同于PyPI后端而是疊加了團(tuán)隊最佳實(shí)踐。我們后來將strict_name_matching設(shè)為團(tuán)隊標(biāo)準(zhǔn)強(qiáng)制要求project.name、project.urls、GitHub倉庫名三者完全一致這大幅降低了后續(xù)遷移至私有PyPI時的配置成本。5. 進(jìn)階應(yīng)用超越基礎(chǔ)命令的定制化擴(kuò)展方案Octop的擴(kuò)展性不體現(xiàn)在插件系統(tǒng)而在于其“配置即代碼”的設(shè)計哲學(xué)。當(dāng)基礎(chǔ)命令無法滿足需求時我們通過三種方式實(shí)現(xiàn)深度定制且所有方案均無需修改Octop源碼。5.1 自定義檢查腳本用Python函數(shù)注入業(yè)務(wù)邏輯Octop支持在octop.toml中定義[custom]節(jié)指定自定義檢查腳本路徑[custom] scripts [scripts/check_api_docs.py, scripts/validate_env_vars.py]每個腳本必須定義run()函數(shù)返回{status: OK|WARN|ERROR, message: 描述, details: {...}}。例如scripts/check_api_docs.pyimport subprocess import sys def run(): try: result subprocess.run( [sphinx-build, -b, html, docs/, docs/_build/html], capture_outputTrue, textTrue, timeout300 ) if result.returncode 0: return {status: OK, message: API docs build successful} else: return {status: ERROR, message: API docs build failed, details: result.stderr[:200]} except Exception as e: return {status: ERROR, message: fDocs check crashed: {str(e)}}該腳本被octop scan自動調(diào)用結(jié)果與其他檢查項同等展示。我們用此機(jī)制集成了Sphinx文檔構(gòu)建、OpenAPI規(guī)范校驗(yàn)、環(huán)境變量必需性檢查等12個業(yè)務(wù)專屬檢查項使Octop從通用工具蛻變?yōu)閳F(tuán)隊專屬質(zhì)量門禁。5.2 鉤子腳本在關(guān)鍵節(jié)點(diǎn)注入自動化操作Octop提供pre-scan、post-conflict等生命周期鉤子。在octop.toml中配置[hook] pre_scan scripts/pre_scan_hook.sh post_pypi_check scripts/post_pypi_hook.pypre_scan_hook.sh示例#!/bin/bash # 自動清理舊dist包避免pypi-check誤判 rm -rf dist/ # 生成最新版本號寫入pyproject.toml echo version \$(date %Y.%m.%d)-$(git rev-parse --short HEAD)\ pyproject.toml這些鉤子腳本在Octop主邏輯執(zhí)行前后自動觸發(fā)且共享同一環(huán)境變量上下文如PYPI_TOKEN。我們用pre-scan鉤子實(shí)現(xiàn)了“每次掃描前自動更新版本號”用post-pypi-check鉤子實(shí)現(xiàn)了“校驗(yàn)通過后自動推送Git tag”將發(fā)布流程壓縮至octop pypi-check git push --tags兩步。5.3 模板引擎深度定制生成符合團(tuán)隊規(guī)范的項目骨架Octop的init命令本質(zhì)是Jinja2模板渲染。我們復(fù)制octop/templates/目錄創(chuàng)建team-templates/并重寫pyproject.toml.j2[build-system] requires [setuptools45, wheel, setuptools_scm[toml]6.2] build-backend setuptools.build_meta [project] name {{ project_name }} version 0.0.0 description {{ description }} authors [{name {{ author }}, email {{ email }}}] readme README.md requires-python 3.9 dependencies [ requests2.25.0, pydantic1.10.0, ] # ... 其他團(tuán)隊標(biāo)準(zhǔn)依賴然后在octop.toml中指定[init] template_dir ./team-templates執(zhí)行octop init --project-name my-tool時Octop會渲染team-templates/中的模板生成完全符合團(tuán)隊技術(shù)棧的pyproject.toml。我們已將此方案固化為“新項目啟動包”使團(tuán)隊新項目初始化時間從2小時縮短至11分鐘。最后分享一個小技巧Octop的--help輸出支持ANSI顏色但在CI日志中會顯示亂碼。解決方案是在CI腳本中添加export NO_COLOR1Octop會自動禁用顏色輸出確保日志可讀性。這個環(huán)境變量是標(biāo)準(zhǔn)約定幾乎所有現(xiàn)代CLI工具都支持值得記在你的Shell配置里。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
乱色老一区二区三区的观看方式 | 色在线亚洲视频www| 一区中文字幕二区日韩| 99精品成人免费看| 中文字幕在线观看永久| 91 欧美| 久9爱经典视频| 久久综合五月天| 三级精品三级在线观看| 99久久免费看精品国产一区| 九一精品牛牛一区二区| 欧美三级免费伊人| 99国产人成精品| 国产一在线观看| 狠狠入| 丝袜色综合| 99久久无色码| 亚洲狼狼干综合1| 黄色av一区二区在线| 伊人天天久久动态图| 91久久精品美女高潮喷水| 欧洲Au麻豆| 丁香五月天堂| 国产在线视视频有精品| 91美女中出| 国内精品久久久久影院亚洲| 亚洲超碰在线| 国产激情av女片自拍| 天天操天天干一区二区 | 超碰导航97| 久久久久斤小| 亚洲黄色网址| 91精产一区二区三区| av午夜玫瑰| 97视频网站在线观看| 精品国产乱码久久久久久口爆网站 | 国产精品黑人一区二区三区| 校园春色综合网| 国产精品视屏| 天天综合欧美| 特色a在线上| 亚洲天天自拍| 亚洲性天堂| 啪啪自拍九九综合| 51久久夜色精品国产麻豆| 成人无码在线超碰网| 中文字幕精品免费一区二区| 最新日本中文字幕| 亚洲小电影免费涩涩成人在线高清 | 男女性感激情网站| 亚洲 国产 精品一区| 日本黄色大片一级视频免费麻豆| 日韩久久.一级黄色片| 国产精品女生av| 亚洲一区二区三区不卡国产欧美| 精品一啪| 日韩久久三区| 你草精品在线视频| 久日综合网| 日本精品九九九| 超碰97欧美日韩| 欧美性五月| 欧美骚少妇| 我要色综合网站| 欧美翘臀视频网站一区二区三区| 成人五月天丁香激情综合| 久久久久亚洲AV无码专区少妇| 999亚洲国产视频| 国产黄片在线免费观看| 91在线页| 99re热| 天天影视综合色| 东京热双插| 性videos欧美熟妇hdx| 人人妻人人狠人人| 国产怡红院| 天天干人妻| 日韩久射综合| 亚洲国产精品9999在线观看| 97这里都是精品| 亚洲在钱| 无码高清操逼网址| 美女尤物福利视频| 亚洲偷91色| 91狠狠综合网| 欧美十八禁在线看| 国产视频大全| 性饥渴少妇av无码毛片| 99热久| 精品人妻视频一区二区三区蜜桃视频| 美女9118禁| 伦伦成年午夜免费视频| 亚洲色欲一区二区三区| 亚洲综合色图欧美| 天天日B狠狠操| 99re99视频在线免费观看| 亚洲性天堂| 国语精品内射在线观看| 天天操天天日天天干| 国产老女人久久毛| 久久98| 裸体1区| 国产精品美女视频诱惑| 九九这里只有精品| 欧美资源| 欧美毛片在线网| 97久久综合网| 国产亚洲综合欧美一区| 视频二区熟女人妻| 333kkkk·亚洲com久久| 久热99999| 男女激烈网站最新| 中日韩久久人妻一区二区| 超碰97色| 少妇毛片久久| 亚洲āv网址在线观看| 美女露胸露尿口| 亚洲黄色电影| 五月婷婷啪啪| 国内一级精品| 丝袜喷水在线| 日韩簧片免费看| 色性荡荡荡荡视频| 性爱乱伦视频免费| 中文字幕女同在线| 国产绿奴视频在线观看| 亚洲情色 无码专区| 黄色激情电影在线观看| 和协影院中文字幕三区| 夜间福利片1000无码| 中出后入| 亚洲视频二区 | 五月丁香婷婷啪啪| 97干色| 91 国产丝袜在线放观看| 欧美 亚洲| 99.色网| 日韩精品中文字幕人妻| 亚州综合色| 91总综合网| 视频国产欧美在线播放| 嗯嗯啊好大| 伊人久操| 亚洲91网| 少妇内射www在线观看视频| 东京热男人的天堂精品| 亚洲 欧美 日韩另类 麻豆| 免费精品99| 亚洲一区二区三区在线激情| 97精品综合久久网| 操逼逼无码| 欧美日本国产日韩激情视频| 男人高清无码一区二区| 亚洲图片 激情小说| 日韩人成网站在线播放| 91精品91久久久久77777俄罗斯老妇姓x| 天天爱天天操| 88xx成人精品视频| 久久精品女同亚洲女同13| 色色婷| 婷婷超| 日本天天干天天搞一区| 五月丁香色色网| 欲香欲色| 亚洲 中文 欧美 日韩 在线| 欧洲Au麻豆| 久久一级无码精品毛片6| 97综合国产| 中国小夫妻勾搭露脸淫荡对白 | 少妇 综合| 欧美精品日韩久久久九| 亚洲女人91| 91久久18禁| 一级免费啪啪片| 精品熟女呻吟久久91| 亚洲 另类 丝袜 自拍 动漫| 另类图片五月天| 涩综合导航| 夜夜欧美 | 天天干夜夜操一区二区| 99re69| 国产 日韩 欧美 人妻 熟女 中文 69人妻精品一区二区绯色 | 蜜桃AV天堂| 亚洲欧美一区二区不卡视频播放| 国产欧美美女免费观看视频| 免费毛片在线播放| 日韩人妻中文视频| 国产av强奸美女| 国产老太乱伦一区| 欧美激情区| 天天天做天天天爱天天天爽| 91在线丝袜视频| 日韩人妻大香蕉| 国产精品一二三在线看| 国产精品干干干| 国产 日韩 欧美一区| 91 亚欧| 欧美淫乱视频| 久欲AV| 2019AV天堂| 欧美日韩99精品麻豆传媒| 国产超碰人人操| 免费精品人妻一区二区三| 91精品人| 天天射天天| 国产精品女aA片爽爽视频| 欧美—性—交—色| 羞答答AV中文字| 嗯嗯啊好大| 中文字幕55555| 神马久久网| 亚洲日韩青青草色月| 亚洲天堂另类小说男人| 九九九九九九九九九五码| 色盈盈影院| 国产精品2020| 亚洲综合骚逼| 97爱亚洲| 亚洲一区操| 国产日韩手机视频在线| 欧美1区二区三区公司| 一个国产在线综合网站| 久久久久久久久久久免费精品| 青娱乐淫乱1314| 人人么人人操| AV不卡在线| 欧美在线播放aaaa| 婷婷尹人大香蕉免费| 日本高清电影欧美色图| 亚洲男人天堂2013| 日韩欧美~中文字| 久久久青青草| 国产精品久久99日日| 97任你吞精| 久久婷五月| 男人亚洲91首页在线| 肉丝网站91| 啊操爽品善一区二区三区| 亚洲黄色网址| 久久精品一区二区| 在线观看免费视频国产| 激情看片网站| 欧美少妇第一页| 四虎在线观看网站| 熟妇一区二区| 可以在线观看的黄色网址| 日韩人妻一区二区精品| 91 丝袜在线| www男人天堂| 亚洲性爱成人| 亚洲第一在线视频| 中国熟女网站| 日韩啊V| 一区二区三区免费岛国片| 综合色99| 男人精品天堂一区| 夜夜爽夜夜操| 噜噜噜在线视频| AV大香蕉| 亚洲精品国产熟女久久久| 日韩精品-原创伙伴| 欧美 精品国产制服第一页| 秋霞免费AV| 色大香蕉97N| 性做久久久久久免费观看软件| 91蜜臀在线久久久久| 久草久热| 丝袜 中出 制服 人妻 美腿 中文字幕| 蜜臀无码视频在线观看| 一区二区激情国产熟女| 大香蕉2017| 中文字幕精品一区欧美| 久久av色| 亚洲欧洲无码bt精品合集| 色999亚洲人成色| 啊啊啊啊,啊啊好多水| 中文字幕久久婷婷丁香五月天| 日本一本道A级黄色毛片试看60分钟| 国产视频一区二区在线| 亚洲色图欧洲| 116美女午夜| 精品无码少妇| 一区二区三区在线资源| 中文字幕AV中出| 丁香五月综合| 亚洲久草AV色图| 精品视频免费在线一区| 神马午夜久久久| 人人搞人人插人人操| 男人的天堂不卡一区二区| 熟女熟妇伦久久影院毛片一区二区| 粉嫩绯色AV一区二区在线| 日日夜夜青青草母狗| 自拍啪啪视频| 天天看综合网| 啊啊啊好多水| 亚洲drav色图| 综合激情五月丁香| 成人精品久久| 一色网男人的天堂| 欧美亚洲天堂| 久草视频制服诱惑| 超碰在线人妻中文字幕| 久久久∴| 特级丰满少妇一级AAAA爱毛片| 人妻丝袜肏逼| 国产精品午夜高潮呻吟久久av| 亚洲加勒比色图| 久久精品色欧美aⅴ一区二区| 91热色| 婷婷伊人綜合中文字幕小说| 91网站18禁| 色香阁在线| 天天看天天日天天操| 丰满欧美少妇| 国产第12页| 伦在线97| 日本精品成人无码| 免费a v| 中文乱码99| 欧美操逼熟女| 综合第一页| 亚洲天堂女优在线 | 亚洲人精品久久久喷水| 午夜福利免费福利视频| 青青草原av| 中文啪啪视频| 懂色天天爱天天日天天射天天澡| 哈哈操电影| 天天综合网久久ww| 国产1769在线| 久久人妻| 久草毛片| 欧美夜色| 亚洲欧洲偷拍一区| 国产www色在线观看| 夜夜爽夜夜高潮夜夜爽| 操逼精品视频| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 久久专区| 后入式999| 福利风月五月天影院| 可以免费观看的日韩av毛片| 国产美女91| 国产精品色哟哟| 日韩中文字幕二区| 黄片免费看的| 超碰精品国产无码| 国产农村妇女毛片精品久久| 九九国产| 屌妞视频久久久久久久| 口爆综合网| 嗯啊抽插大香蕉网页| 97在线观看| 香蕉国产97| 黄色不卡视频| 涩爱AV在线| 天天操夜夜操| 99热9| 成年人黄色小视频网站| 欧美十八禁视频| 日韩有码专区| 蜜臀久久久99久久久久 | 97碰| 亚洲Av诱惑| 91国产丝袜美女| 久久av色| 宗合情欲网| 爽爽歪在线视频| 99久re热视频精品98| 无码精品一区二区三区潘金莲| 精品蜜乳AV免费观看| 二级毛片| 日韩强奸av| 超碰97人人乐| 欧美天天综| 嗯啊啊啊轻点视频 | 91四海无码日韩欧美| 日韩欧美天天爽爽爽天天爽爽 | 永久免费av无码网站国产app| 日韩成年人性爱视频| 美女91在线| 成人国产二区三区在线,男女精品。| 亚洲少妇自拍中文字幕懂色| 男人天堂无码| 风间由美日韩欧美久久| 亚洲成人贴图| 13小男生GAY自慰脱裤子| 呦呦一区| 欧美五十路熟| 亚洲 日韩 丝袜 熟女 变态| 乱伦AVxx| 涩五月婷婷| 日韩三级视频一区二区三区| 91丝袜美腿网站| 久久这里精品国产99丫e6| 在线啊啊啊啊| 国产乱码精品久久久久久| 97欧美色资源| 欧洲综合色| 日韩有码专区| 6080YYY午夜理论片在线观看| 欧美 精品国产制服第一页| 岛国在线免费视频| 狠狠综合网| 亚洲成人av色网| 人妻在线臀日韩| 亚州色图欧美| 欧美草草高清日韩视频| 91天天| 久久精品 六十路 熟女 欧美| 久久透逼视频| 高清在线偷拍自拍视频| 色婷婷综合久久久久中文国产精品一区中文字幕,国产福利电影一区二区三区 | 日本99一区二区| 青久久| 天天日天天看| 岛国毛片手机在线观看| 99色在线观看| 九九热这里只有在线精品视 伊人草 成人菠萝蜜视频在线观看 | 粉嫩av平台| 日韩激情小说一区二区| 色优久久| 狠狠做深爱婷婷久久二区| 欧美情色亚洲| av在线观看不卡网站| 国产AV久久久蜜爱影集| 91偷拍欧美亚洲| 精品高清牛人盗摄一区二区三区中文字幕A片免费在线观看 | 青青操狠狠撩| 99re这里只有精品3| 蜜臀无码一区二区| 亚洲中字幕日本一区二区三区| 综合在线导航一区| 久久不卡一区二区| 亚洲无码一区成人免费午夜| heyZO天然素人无码AⅤ专区| 超碰碰激情97+久| 99色色网| 国产高清成人mv在线观看| 国产精品不卡少妇白| 久久久av爱| 久夜视频| 逼操网站| 久艹伊人精品综合在线| 日韩人妻无码不卡网站| 日韩性爱电影一区| 九九九九精品一区| 午夜福利1区2区3区| 狠狠色色| 久久午夜神马| 九九综合久久| 国产丝袜一区二区三区| 欧美另类精品xxxx| 伊人久久大香蕉线AV五月天| 日本东京热久久久电影| 蜜臀久久99精品久久综合| 限制级中的三级片中的黑粗大屌屌日人妻熟女| 中文字幕AV乱伦| 97操97色| 日韩无码极品| 青青国产精品在线| 97久久久| 亚洲精品欧洲精品| 秋霞一级鲁丝片A片| 人妻熟女字幕一区二区| 欧美精品一二三| 影音先锋国产精品| 在线啊啊啊| 国产精品免费视频人成| 色偷偷综合91久久噜噜| 午夜无码精品免费看性色| 日噜夜夜夜夜夜夜夜夜夜夜爽爽爽爽爽爽爽爽爽爽爽爽 | 动漫片子网站3黄| JIZZJIZZ亚洲女人被躁| 殴美日韩m| 日韩av在线精品观看| 熟妇人妻一区二区三区| 五月天我淫我色av| 伊人操操| 天天色综亚洲91污| 蜜臀久久99精品久久久久久成人小说 | 亚码激情| 国产福利电影| 国产一区二区在线播放,久久亚洲精品中文字幕第一区,亚洲精品在线中文字幕视频 | 亚洲欧美中文日韩视频中国语| 青久久| 女人高潮抽搐喷水视频网站| 黄色工厂这里只有精品| 日本一区二区三区精品| 亚洲AV噜噜狠狠网址蜜桃动漫| 成熟熟女国产精品一区二区| 爆操无码| 干超碰碰熟女| 无码久| 久久人人爽人人爽人人片Ⅴ| 后入式免费视频| 天天看人人操屄犊摸阴| 欧美日韩国产中文精品字幕自在自线| 99最新日韩偷拍视频| 97色婷| 午夜男女爽爽大片免费观看| 日本高清加勒比| 色色无码| 天天色,天天干,天天干| 国产9熟妇视频网站| 好湿好紧好爽 视频| 嫩呦国产一区二区三区AV| 日本道日本道中文字幕日本道最新日本道在线观看 | 亚洲一区二区三区欧美日韩| 色悠久| 裸体1区| 91 刺激在线| 亚洲小电影免费涩涩成人在线高清| 欧美色图小说综合| 狠插 制服 自拍| 日本理论在线| 亚洲欧洲日本精品中文a∨| 色婷婷一区二区三区久久午夜成人不| 蜜色网色哟哟| 婷婷91| 精品国产一区二区三区四区在线看| 激情另类激情| 欧日韩在线观看| 久久久久久久一级黄色打同平台| 精品国产丝袜一区二区三区乱码| 麻豆美女丝袜人妻中文| 五月天AV资源| 久久久久78| 天天操av懂色| 亚洲色五月| 成人aⅴ一区二区三区| 久久人妻| 超碰美国| 久久嫩草| 日本道人妻久久久在线不卡色视频| 欧美亚洲一区二区久久久婷精品大包诱| 大香蕉黄色一区| 免费一级精品啪啪视频| 大香蕉欧美国产日韩高潮| 久久HD| 欧洲精品区| 日本少妇va7777| 天久久久噜噜噜久久国产精品爽爽 | 久久婷婷五月综合| 熟女丰满人妻一区| 亚洲美女 晚间男人天堂| 日本啊啊啊啊啊视频| 色香综合天天影视综合| 色色婷| 久久综合九九| 成人a v在线播放免费| 人妻啪| 精品国产乱码久久久久久久久1| 欧插网站| 国产91丝袜在线播放蜜月| 欧美一级在线观看成人| www…国产操逼| 三级片网站在线播放| 春色综合网| 阿姨一区二区免费视频-高清正片西瓜视频下载app-T450AV | 中文字幕黄片在线| 天天射天天操天天干天天吃2018| 少妇综合| 久久久国产av美女私房| 91精品微拍福利| 91精品女厕偷拍视频| 26uuu性物| 久草视频在线视频在线视频在线观看 | 国产亚洲精品久久久久小| 日韩激情无码影院| 四虎国产精品永久地址入口| 亚洲成人日韩小说| 亚洲 欧美 手机在线观看| 岛园激情| 亚洲图片欧美91N| 精品久久久久9999| 粉嫩久久久久| 精品国产乱码久久久影院| 日产精品久久久一区二区| 老司机香蕉| 国产精品久久久 | 欧美手机在线综合| 免费视频一二三区| 精品人妻视频入口| 中文字幕狠狠玩| 欧美激情综合色综合啪啪五月| 欧美视频在线第3页| 国产有码一区| 91精品操美女| 亚洲网站一区二区在线| 强奸乱伦大香蕉网| 人人天天欧洲| 国产一区二区久久| 精品欧美乱码久| 国产无吗在线播放| 人妻精品视频一区二区| 欧美激情亚洲色图| 99久久9| 亚洲九九九| 久久精品国产亚洲AV高级北京| 婷婷99| 大肉棒导航| 熟女精品日韩一区二区三区| 亚洲欧洲综合av在线| 亚洲成av人片色午夜乱码| 亚洲AV乱码专区国产噜噜亚洲 | 亚洲天堂精品日韩电影| 国产自产一区视频在线| 日本欧美韩国日产片片在线看免| 亚精品无码毛片一区二区三区| 九七超碰人人乐| 无码一区二区精品视频久久久春药 | 极品五月天噜噜| 欧美精品,四区。五区| 亚洲中文字幕熟女| 91精品丝袜久久久久久| 男人的天堂在线| 无码人妻精品酒店| 久操婷婷| AV在线播放网址| 天天操人人操狠狠插| 嗯嗯啊中文字幕| 天操天操夜操夜月操月年年操操| 黄视频免费| 久久9精品视频| 综合色欧美| www.国产高潮精品| 爱妻综合网| 亚洲一区操| 黄色污污污污污污网站| 日韩大香蕉AV影片| www.色操逼| 四虎影视永久在线观看精品免费网站| 男女激烈网站最新| 丁香五月天婷婷姐| 一起草在线视频| 欧美一级色| 亚洲玖玖爱| 亚洲一区二区三区欧美日韩| 国产成人精品一区| 一级黄色性爱A级片| 九一精品牛牛一区二区| 欧美一区二区一级岛国大片| 四月丁香婷婷| 少妇熟女1区2区3区| 国产精品情侣啪啪| 精品人妻免费观看| 久久熟妇五十路一区| 2023天天操夜夜操| 亚洲精品欧美专业| www.久久制服糖| 伊人青青草久久| 天天干天天燥| 精品一二三区女同 | 天天天操天天天爱| 亚洲国产成人高清在线| 五月天婷婷社区| 九九久久精品| 91丝袜美女视频| 人人澡人人爽人人精品| 无码区蜜乳| 久久精品免视看国产成人﹣蜜臀av一区. 久久精品免视看国产成人,蜜臀av一区 | 亚洲精品一二区| 久热久操| 亚洲天堂 视频你懂的| 97神马久久| 91美女视屏| 天天爽夜夜爽夜夜爽精| 午夜无码熟妇丰满人妻| 爱我干综合| 少妇久久久久| 男人久久精品| 破苞ⅩXXX性无码动漫无码| 综合亚州欧美| 久久久噜噜噜久久久| 日韩无码操逼片| 台湾佬中文娱乐网久久久久久久久久com | 长长久久免费视频| 日韩成人精品| 亚洲综人| 亚洲。日韩。欧美| 超碰在线香蕉| 99热伊人| 综合91网| 96精品在线| 日本免费中文字幕在线| 夜夜高潮夜夜爽夜夜爱爱一区| 91人妻视频在线| 黄色小视频日本txt| 天天狂操夜夜狂日| 国产熟女精品区| 婷婷久久综合| 亚洲精品天堂久久A∨51成人漫| 啊啊啊慢点| 欧美情色男人的天堂| 狠狠色综合网| 神马久久久久久伦理片| 97精品免费视频网站| 无码操逼天堂| 91最新综合| 久操婷婷| 欧美大香蕉专区网| 日本伦乱九九九综合| 91视频女生| 九九热超碰97亚洲最新香蕉| 国产免费一区二区在线A片视频| 国产兽交视频在线播放| 97这里有精品| 美女骚尻视频| 国产欧美日韩臀| 亚洲色图91欧美日韩| 91人妻尻屄视频| 成人免费毛片| 亚洲欧美电影| 老司机香蕉久久久久| 欧美综合 站| 亚洲色图20p| 久久久久成人蜜桃精品| 国产一区二区视频在线播放| 久久精品日韩| 精品久久久久久AV无码| 久久 精品| 欧美熟妇色| 一摸二插三插| 四虎在线免费视频| 久草草一二三四区久久| 1区2区3区中文字幕日韩| 台湾佬激情综合| 色爱综合网| 99久久婷婷国产综合| 熟女色综合久久| 国产中文大片资源中文字幕| 亚洲精品一二牛牛| 福利视频香蕉免费一区二区在线| 欧美超碰在线| 日韩欧美加勒比| 啊啊啊啊啊啊啊啊在线观看| 99久在线精品99re8蜜桃| 欧洲一区二区三区四区在线观看| 国产白丝在线| 久草精品一区 | 国产熟女少妇一区| 亚洲中文制服诱惑| av大香蕉网站| 青春草A| 99re99视频在线免费观看| 国产成人主播| 亚州欧美总和| 99热线麻豆| 国产精品一区在线播放| 激情小说激情视频| 丁香九月婷婷| 免费岛国一级片| 不卡中文字幕aⅴ在线| 国产福利电影| 强奸乱伦大香蕉| 国产97视频免费观看| 国产精品熟女丝袜一区二区| 亚洲成人免费在线| 一本一道人妻久久一区二区三区 | 亚洲在线网站| 国产女人高潮嗷嗷嗷叫小说| 亚洲色图殴美色图激情乱伦| 九九久久99| 国产丝袜美女诱惑| 97碰碰日本乱偷人妻中文的| 97av,com| 久操免费观看| 欧美综合国产精品久久丁香| 色狠狠 - 百度| www久| 97高清啪啪| 国产免费一区| 欧亚日韩中文在线| 精品人妻1区| 免费看日产一区二区三区| 人妻天堂综合网| 欧美中字二区| 超碰导航97| 一级岛国大片| 欧美在线干| 久久久久久性爱视频| 久九9精品| 精品91日日夜夜超清资源| 亚洲成人性爱网站在线播放| 中日高清无码操逼视频| 91丝袜美女| 性欧美| 日韩精品一区二区高清| 色色五月天婷婷| 久久久∴| 啊啊啊网站| 黑人无码一区二区| 欧美天堂日韩三级国产传媒| 玖玖资源视频一区二区三区| 香港澳门日本三级网站| 日本午夜久久电影| 欧美A√综合网 | 欧美色亚洲| 在线观看黄色电话| 神马久久网| 色欧美综合| 亚洲国产一区二区三区四区国产| 伊人久久国产免费观看视频| 日本大香蕉综合网红本杳社区| 亚洲国产欧美另类自拍| 99热这里只有精| 91亚洲黄色网| 午夜福利免费福利视频| 97资源欧美| 女人综合网| 久久久国产成人一区二区三区在线| 成人日韩中文字幕| 国产白丝av| 久久草大香蕉| 无码人妻毛片丰满熟妇精品区| 中文字幕美女91| 91原创在线观看| 日韩三级av片| 免费看日产一区二区三区| 亚洲天堂日本| 以及麻豆国产入口在线观看免费| 久久久久成人蜜桃精品| 超碰97人人乐| www.av在线观看| 加勒比av官网在线| 久久av一级av少妇av高潮| 日韩国产十八禁| 在线日韩精品一区二区三区| 夜夜爽77777| 美女91| 欧美拳交在线播放| 亚洲天天更新| 天天综合91在线| 不卡视频一区蜜桃视频 | 日本黄色天堂| 国产精品久久久久久片| 男人的天堂无码| 國產尤物AV尤物在線觀看 | 免费伦费视频在线观看| 国外91| HEYZO高无码国产精品227| 日韩97精| 欧美日韩第一页| 久操频道免费在线呗看| 人妻少妇精品一区二区三区| 91操熟女视频| 伊人久久88国产女| 另类图片综合| 亚洲男人的天堂AV| 伊人网综合在线视频| 锕锕好爽 死我在线观看| 国产成人www免费人成看片| 安微少妇操BBB| 日本一级一级一级一级| 97色亚洲| 青久操| 人摸人人操人| 97国产|免费| 亚洲精品97在线| 国产精品ⅴ无码大片在线看.| 啊好爽快点-国产一区二区三区撒尿在线-成人AV| ,成人免费啪啪视频| 超碰无码五月97| 91一起操| 国产免费黄色一级大片| 日本黄色裸日本黄色裸体 | 人妻黑丝袜电影| 久久精品性| 大学生美女口爆| 久久99精品九九久久久婷婷| 717影院理论午夜伦八戒| 亚洲精品99999| 久久久久9999妇女| 人妻人人操| 欧美性爱日韩高清| 久久久久久久综合,国产| 五月天婷婷综合| 久久午夜鲁丝片| 97超碰欧美手机在线| 区日韩亚洲乱码av电影| 人人操人人摸人人看人人干| 亚洲综合有码| 在线观看A啊啊啊| 亚洲精品三| 乱伦一二三区| 就去色综合| 丝袜天堂| 骚逼高潮久久精品| 色网在线视频观看免费| 火箭成精品视频884必出精品| 蜜臀AV成人精品蜜臀| www.99视频| 一级黄色视频网| 天啪| 久久影视二区三区行押| 中文字幕天天天天天| 亚洲色诱惑| 色在线亚洲视频www| 狠狠爱大香蕉| 国产自产22区| 一区 欧美 日韩 麻豆| 99无码视频| 夜间福利片1000无码| www.av家庭乱伦| 日本 情色 1区| 欧美一品道| 蜜桃视频一区二区三区在线观看| 婷婷在线视频| 人妻中文字幕日韩电影| 夜夜操美女| 清纯唯美亚洲| 久久内射| 岛国天天午夜影院传媒网| 天天日天天操VV| 亚洲五区熟女| 九九九网页| 亚洲熟妇自偷自拍另欧美| 丰满人妻av一区二区三区| A 在线网址| 欧美日韩*字幕一区| 国产精品女aA片爽爽视频| 日比av无码| 99视频自拍区| 亚洲国产中文字幕| 欧美日韩人妻婷婷一区| 精品十三区| 日韩熟女精品无码专区一区二区| 婷婷五月天av| 丁香五月天激情| 高清在线偷拍自拍视频| 国产女性无套 免费观看| 日韩A优精品在线观看| 男人天堂黄片| 久久东京伊人一本到鬼色| 99久国产精品午夜性色福利| 国产辣妈在线视频福利| 亚洲不卡三级手机播放| av网站免费看| 欧美高清无码免费视频高清版| 丰满人妻区一区二区三| 999久久久| 国产一级舔足在线观看| av网站国产主播在线| 很很操在线| 思思视频免费看网站| 久久受www免费人成| 天天色黄色影院天天操| 91在线超高颜值国产| 久久91视频| 亚洲欧洲日韩国产自在线| 亚洲二区精品在线观看| 国产AV超爽| Julia在线播放亚洲久久| 九色 人妻 大香蕉| 熟女自慰久久久| 日韩噜噜69| AV在线播放网址| 91亚洲综合在线| 亚洲阿v天堂在线| 人妻干天天| 久久亚洲AV成人精品无码| 日本岛国黄色网址| 欧美日韩色图片| 台湾佬中文娱乐自偷自拍| 艳尻美人妻| 久久久久久中文| 不卡日本一区二区| 亚洲欧洲自拍图片专区满春格| 99国产精品视频尤物| 亚洲第一无码播放立川理惠| 六月婷婷综合| 日韩av色图综合| 久久是精品| 久久免费少妇| 强奸乱伦大香蕉| 色五月婷婷在线| 好吊色一区| 中文字幕av一区二区三区人妻少妇| 九九九九精品精| 国产亚洲精品精AV.| 亚洲精品国产精品乱码不99| 欧美激情总合网| 日日日骚女人精品| 97亚洲中文| 国产一区二区免费福利片| 天天操天天舔| 殴美综合色88| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 日本大香蕉| 大香蕉伊人75| 日本狂喷奶水在线播放212| 国产亚洲综合欧美一区| 91亚洲影院综合| 国产999精品久久久| 国产日韩欧美中文在线播放| 五月婷婷六月色| 天堂涩涩| 99久久国产精品免费高潮| 色欲日韩欧美在线一区| AV高清一区| 2017天天操| 黄色片大香蕉| 欧美亚洲AN| 少妇久久久| 五月激情视频| 天天操天天谢| 在线观看亚洲成人精品| 人妻激情偷乱视频一区二区三区| 精品一国2| 亚洲无码精品AV久久久| 久/久精品99看9| 日产123区精品免费观看| 欧美日韩在线视频网站| 中文字幕一区二区三区视频播放| 欧美在线55555| 性色AV蜜色av色欲av| 伊人AAA| 情色大香蕉| 久久精品国产亚洲AV无码电影| 亚洲色图a| 亚洲福利影院一区久久| 五月丁香综合网| 舔人妻中文免费视频| 温婉少妇玩3p| 黑人精品久久97| 2017人人操,人人摸| 亚洲AV资源| 免费操逼91| 男人的天堂,欧美亚洲另类国产日韩,日本高清一区二区 | 国产辣妈在线视频福利| 啪啪91| 天天看天天日天天操| 91丝袜美女国产| 久久三区四区| 99综合视频| 国产精品久久久亚洲第一牛牛_在线观看| 思思热免费在线视频| 亚洲 欧美 另类 日韩 人妻一区| 性爱综合一区二区| 久久久久一本一区二区青青蜜月| 免费观看日本操逼视频| 欧美亚洲性爱一区二区| 日韩肏逼视频| 4141514逼喷水三级片| 一级性爱视频免费观看| 大香蕉伊人网WWWn0n| 免费操逼91| 成 人 影视 一区 二区 三区 四区 | 久久久偷拍| 国语人妻精彩刺激| 色在线视频导航| 欧美色图私拍91| 久久久久免费看少妇A片特黄| 亚洲91网站| 日韩av不卡在线观看| 欧美色交| 久久天天摸| 日本国产亚洲一区在线观看| 日日橹狠狠爱欧美超碰| 久草国产在线视频| 999久久芭蕾| 五月婷丁香| 婷婷伊人五月| 新视频sss国产| 色爱综合网| 蜜臀久久99精品久久久| 国产精品久久久蜜臀| 久久九九视频九九视频| 亚洲精品蜜桃久久久| 久久久人体| 久热在线精品免费观看| 久久中文字幕女同性恋一区| 成人在线日韩| 婷婷伊人五月| 伊人四虎综合| 欧美色棕合| 欧美日日操| 中国91AV| AV丝袜少妇| 熟女被操视频网址| 校园春色综合网| 亚洲男人综合网| 五月天婷婷色| 成人小说视频在线精品欧美| 伊人久大| 欧美综合加勒比在线| 国产男人又猛又粗又爽| 亚洲人妻爽爽爽| 91高跟美女在线播放| 久久婷婷影院| 啪啪啪精品| 加勒比色99999| 亚洲精品国产AV天美传媒| 国产懂色精品国产av| 一级性爱视频免费观看 | 蜜桃午夜视频一区二区| 九九九九九九九九九九九免费国产| 中国一级特黄大片护士| 91成人精品在线播放| 色婷婷一区二区三区久久| 2017天天透天天通天天擦| 99色视频| 综合久久六月久久婷婷| 超碰色综合| 久久9免费视频| 精品96久久| 91色碰| 免费精品福利在线观看| 日韩av不卡在线看| 国产日本一区二区三区蜜臀在线观看| 中国黄色特级精品一区二区三区片| 欧美天天插| 免费看久久久性性| 91亚洲色人| 亚洲天堂精品日韩电影| 亚洲成人AB| 伊人少妇久久久| 久9久9精品| 欧美日韩人人精品| 天天干天天干天天干| 亚洲蜜桃V妇女| 欧美一级久久久丰满| а√天堂资源官网在线资源| 伊人麻豆传媒| 33044男人的天堂深夜备| 欧洲亚洲天堂精品| 91艹逼精品| 人人综合| 蜜桃视频精品一区二区三区| 综合色图,成人综合网| 久碰视频| 九九RE视频在线精品| 亚洲综合中文字幕有码| 思思热在线cao| 免费观看国产小粉嫩喷水精品午| 性色AV蜜色av色欲av| 综合另类| 久久精品一区二区一8| 日躁天天爽爽| 99热这里只有精品18| 男同专区一区二区三区在线| 成人精品久久| 久草看看看| 91观看 国产白丝| 欧美日韩亚洲天堂| 天天干电影| yiqicaoav| jizz啪啪| 国产乱伦性爱区| 台湾成人无码AV| 伊人久久综合精品欧美| 亚洲成a人片在线观看中文!!!| 日韩乱伦AⅤ| 国产网红精品| 一起草精品人妻| 日本天天色| 人妻天天操天天爽视频免费 | 超碰97 线线 在现|