国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频

2021 年發(fā)布 Python 軟件包的正確姿勢!

共 14032字,需瀏覽 29分鐘

 ·

2021-04-24 21:17

如果您像我一樣,偶爾編寫一個(gè)有用的python實(shí)用小程序,并希望與您的同事共享。做到這一點(diǎn)的最好方法是制作一個(gè)Python軟件包:它易于安裝,并且可以避免進(jìn)行拷貝操作。
您可能會(huì)認(rèn)為創(chuàng)建軟件包很麻煩。其實(shí)現(xiàn)在已經(jīng)不會(huì)這樣了。我將通過此分步指南進(jìn)行說明。只需執(zhí)行三個(gè)主要步驟(以及一系列可選步驟),并輔以幾個(gè)GitHub鏈接即可。
1.初始化
我們將創(chuàng)建podsearch - 一種在iTunes中搜索播客的實(shí)用程序。讓我們創(chuàng)建一個(gè)目錄和一個(gè)虛擬環(huán)境:
$ mkdir podsearch
$ cd podsearch
$ python3 -m venv env
$ . env/bin/activate
定義一個(gè)最小的包結(jié)構(gòu):
.
├── .gitignore
└── podsearch
    └── __init__.py
"""Let's find some podcasts!"""

 __version__ = "0.1.0"


 def search(name, count=5):
     """Search podcast by name."""
     raise NotImplementedError()
2.測試包
用Python創(chuàng)建一個(gè)包曾經(jīng)是一個(gè)麻煩的任務(wù)。幸運(yùn)的是,如今有一個(gè)很棒的 flit (https://flit.readthedocs.io/en/latest/)小程序可以簡化所有操作。讓我們安裝它:
pip install flit
并創(chuàng)建軟件包描述:
$ flit init
Module name [podsearch]:
Author [Anton Zhiyanov]:
Author email [[email protected]]:
Home page [https://github.com/nalgeon/podsearch-py]:
Choose a license (see http://choosealicense.com/ for more info)
1. MIT - simple and permissive
2. Apache - explicitly grants patent rights
3. GPL - ensures that code based on this is shared with the same terms
4. Skip - choose a license later
Enter 1-4 [1]: 1

Written pyproject.toml; edit that file to add optional extra info.

pyproject.toml

Flit已創(chuàng)建pyproject.toml - 項(xiàng)目元數(shù)據(jù)文件。它已經(jīng)具有將程序包發(fā)布到公共存儲(chǔ)庫-PyPI所需的一切。
注冊TestPyPi(測試存儲(chǔ)庫)和PyPI(主要存儲(chǔ)庫)。它們是完全獨(dú)立的,因此您將需要兩個(gè)帳戶。
~/ .pypirc中設(shè)置對存儲(chǔ)庫的訪問權(quán)限:
[distutils]
index-servers =
  pypi
  pypitest

[pypi]
username: nalgeon  # replace with your PyPI username

[pypitest]
repository: https://test.pypi.org/legacy/
username: nalgeon  # replace with your TestPyPI username
并將軟件包發(fā)布到測試存儲(chǔ)庫:
$ flit publish --repository pypitest
Found 4 files tracked in git
...
Package is at https://test.pypi.org/project/podsearch/
完畢!該軟件包可在TestPyPi上獲得。
3.公開軟件包
讓我們改進(jìn)代碼,以便它能夠?qū)嶋H搜索播客:

# ...

SEARCH_URL = "https://itunes.apple.com/search"

@dataclass
class Podcast:
    """Podcast metadata."""

    id: str
    name: str
    author: str
    url: str
    feed: Optional[str] = None
    category: Optional[str] = None
    image: Optional[str] = None


def search(name: str, limit: int = 5) -> List[Podcast]:
    """Search podcast by name."""
    params = {"term": name, "limit": limit, "media""podcast"}
    response = _get(url=SEARCH_URL, params=params)
    return _parse(response)
并發(fā)布到主存儲(chǔ)庫-PyPI。僅在您的程序包中包含有用的代碼后,才執(zhí)行此步驟。不要發(fā)布無效的程序包和存根。
flit publish
發(fā)布完畢!是時(shí)候與同事分享了。為了使軟件包易于使用,我建議您再執(zhí)行以下幾個(gè)步驟。
A.自述文件Readme和變更日志changelog
沒人喜歡寫文檔。但是,如果沒有文檔,人們不太可能會(huì)想要安裝您的軟件包,因此我們需要添加README.mdCHANGELOG.md。
  • README.md
  • CHANGELOG.md
將README添加到pyproject.toml,以便PyPI在軟件包頁面上顯示它:
description-file = "README.md"
還要指定受支持的最低Python版本:
requires-python = ">=3.7"
更新__init__.py中的版本,并通過flit publish發(fā)布軟件包:

B.Linterstests
我們來考慮一下格式設(shè)置(black),測試覆蓋率(coverage),代碼質(zhì)量(flake8,pylint,mccabe)和靜態(tài)分析(mypy)。我們將通過tox處理一切。
$ pip install black coverage flake8 mccabe mypy pylint pytest tox
tox.ini中創(chuàng)建tox配置:
[tox]
isolated_build = True
envlist = py37,py38,py39

[testenv]
deps =
    black
    coverage
    flake8
    mccabe
    mypy
    pylint
    pytest
commands =
    black podsearch
    flake8 podsearch
    pylint podsearch
    mypy podsearch
    coverage erase
    coverage run --include=podsearch/* -m pytest -ra
    coverage report -m
tox.ini
并運(yùn)行所有檢查:
$ tox -e py39
...
py39 run-test: commands[0] | black podsearch
All done! 
...
py39 run-test: commands[2] | pylint podsearch
Your code has been rated at 10.00/10 (previous run: 10.00/10, +0.00)
...
py39 run-test: commands[6] | coverage report -m
TOTAL 100%
...
py39: commands succeeded
congratulations :)
linters檢測通過,測試也通過了,覆蓋率是100%。
C.云構(gòu)建
每個(gè)可靠的開源項(xiàng)目在每次提交后都會(huì)進(jìn)行云測試,因此我們也將這樣做。一個(gè)很好的附加效果是自述文件中有漂亮的徽章。
讓我們使用GitHub Actions構(gòu)建項(xiàng)目,使用Codecov檢查測試覆蓋率,并使用Code Climate檢查代碼質(zhì)量。
您將必須注冊CodecovCode Climate(均支持GitHub登錄)并在設(shè)置中啟用軟件包存儲(chǔ)庫。
之后,將GitHub Actions構(gòu)建配置添加到.github / workflows / build.yml
# ...
jobs:
    build:
        runs-on: ubuntu-latest
        strategy:
            matrix:
                python-version: [3.7, 3.8, 3.9]

        env:
            USING_COVERAGE: "3.9"

        steps:
            - name: Checkout sources
              uses: actions/checkout@v2

            - name: Set up Python
              uses: actions/setup-python@v2
              with:
                  python-version: $

            - name: Install dependencies
              run: |
                  python -m pip install --upgrade pip
                  python -m pip install black coverage flake8 flit mccabe mypy pylint pytest tox tox-gh-actions

            - name: Run tox
              run: |
                  python -m tox

            - name: Upload coverage to Codecov
              uses: codecov/codecov-action@v1
              if: contains(env.USING_COVERAGE, matrix.python-version)
              with:
                  fail_ci_if_error: true
build.yml
就像我們前面一樣,GitHub通過tox進(jìn)行測試。tox-gh-actions軟件包和USING_COVERAGE設(shè)置可確保tox使用與strategy.matrix所需的 GitHub Actions 相同的 Python 版本。
最后一步將測試覆蓋率發(fā)送給CodecovCode Climate不需要單獨(dú)的步驟-它會(huì)自動(dòng)發(fā)現(xiàn)存儲(chǔ)庫更改。
現(xiàn)在,一分鐘內(nèi)提交,推送并享受結(jié)果。并且讓每個(gè)人也喜歡向README.md添加徽章:
[![PyPI Version][pypi-image]][pypi-url]
[![Build Status][build-image]][build-url]
[![Code Coverage][coverage-image]][coverage-url]
[![Code Quality][quality-image]][quality-url]

...

<!-- Badges -->

[pypi-image]: https://img.shields.io/pypi/v/podsearch
[pypi-url]: https://pypi.org/project/podsearch/
[build-image]: https://github.com/nalgeon/podsearch-py/actions/workflows/build.yml/badge.svg
[build-url]: https://github.com/nalgeon/podsearch-py/actions/workflows/build.yml
[coverage-image]: https://codecov.io/gh/nalgeon/podsearch-py/branch/main/graph/badge.svg
[coverage-url]: https://codecov.io/gh/nalgeon/podsearch-py
[quality-image]: https://api.codeclimate.com/v1/badges/3130fa0ba3b7993fbf0a/maintainability
[quality-url]: https://codeclimate.com/github/nalgeon/podsearch-py
是不是很酷?

D.任務(wù)自動(dòng)化
tox很好,但對于開發(fā)來說不是很方便。運(yùn)行單個(gè)命令(例如pylint,coverage等)的速度更快。但是它們非常冗長,因此我們將一些無意義的操作進(jìn)行自動(dòng)化處理。
讓我們?yōu)?/span>Makefile的頻繁操作創(chuàng)建簡短的別名:
.DEFAULT_GOAL := help
.PHONY: coverage deps help lint push test

coverage:  ## Run tests with coverage
 coverage erase
 coverage run --include=podsearch/* -m pytest -ra
 coverage report -m

deps:  ## Install dependencies
 pip install black coverage flake8 mccabe mypy pylint pytest tox

lint:  ## Lint and static-check
 flake8 podsearch
 pylint podsearch
 mypy podsearch

push:  ## Push code with tags
 git push && git push --tags

test:  ## Run tests
 pytest -ra
Makefile
這是我們的任務(wù):

$
 make help
Usage: make [task]

task                 help
------               ----
coverage             Run tests with coverage
deps                 Install dependencies
lint                 Lint and static-check
push                 Push code with tags
test                 Run tests
help                 Show help message
為了使代碼更簡潔,請使用make調(diào)用替換原始的build.yml步驟:
- name: Install dependencies
  run: |
      make deps

- name: Run tox
  run: |
      make tox
E.云發(fā)布
GitHub有能力為我們運(yùn)行flit publish。讓我們創(chuàng)建一個(gè)單獨(dú)的工作流程:
name: publish

on:
    release:
        types: [created]

jobs:
    publish:
        runs-on: ubuntu-latest
        steps:
            - name: Checkout sources
              uses: actions/checkout@v2

            - name: Set up Python
              uses: actions/setup-python@v2
              with:
                  python-version: "3.9"

            - name: Install dependencies
              run: |
                  make deps

            - name: Publish to PyPi
              env:
                  FLIT_USERNAME: ${{ secrets.PYPI_USERNAME }}
                  FLIT_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
              run: |
                  make publish

publish.yml
在存儲(chǔ)庫設(shè)置(Settings > Secrets > New repository secret)中設(shè)置了PYPI_USERNAMEPYPI_PASSWORD。使用您的PyPi用戶名和密碼,甚至更好的-API令牌。
現(xiàn)在,一旦創(chuàng)建新版本,GitHub將自動(dòng)發(fā)布該軟件包。
您的軟件包已準(zhǔn)備就緒!它具有人們夢寐以求的一切:干凈的代碼,清晰的文檔,測試和云構(gòu)建。是時(shí)候告訴你的同事和朋友了。
這些設(shè)置將使您的 Python 軟件包變得AWESOME:
  • pyproject.toml
  • tox.ini
  • Makefile
  • build.yml
  • publish.yml

更多閱讀



5 分鐘快速上手 pytest 測試框架


5分鐘掌握 Python 隨機(jī)爬山算法


5分鐘快速掌握 Adam 優(yōu)化算法

特別推薦




點(diǎn)擊下方閱讀原文加入社區(qū)會(huì)員

瀏覽 38
點(diǎn)贊
評論
收藏
分享

手機(jī)掃一掃分享

分享
舉報(bào)
評論
圖片
表情
推薦
點(diǎn)贊
評論
收藏
分享

手機(jī)掃一掃分享

分享
舉報(bào)

感谢您访问我们的网站,您可能还对以下资源感兴趣:

国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频 免费无码成人片在线播放| 人妻无码中文久久久久专区| 日本中文字幕无码| 成人AV中文解说水果派| 国产男女无套免费视频| 内射老太太| 欧美日韩成人网站| 亚洲最新在线观看| 亚洲wwwwww| 无码射精电影| 日本一级a片| 日本少妇无码| 国产精品视频福利| 亚州av| www.人人摸| A级免费视频| 亚洲欧洲精品成人久久曰影片| 国产一级精品视频| 伊人狼人香蕉| a片免费在线观看| av黄色在线观看| 国产精品无码7777777| 欧美日韩成人一区二区三区| 日韩十八禁网站| 亚洲无码中| 天天久久毛片| 久久艹精品视频| 久久激情国产| 国产精品视频一区二区三| 欧美精产国品一二三| 日韩无码性爱| 久操视频在线播放| 国产成人亚洲综合A∨婷婷| 丁香五月五月婷婷| 欧美亚洲自拍偷拍| 欧美啊啊啊| 99黄网| 亚洲国产精品精JIZZ老师| 亚洲AV久久无码| 久久午夜无码鲁丝午夜精品| 欧美在线成人网| 久色性爱视频| 91香蕉视频| 精品三区| 青青草手机在线视频| 污视频免费在线观看| 岛国av在线播放| 精品国产区| 四虎黄色片| 婷婷国产AV| 日本一区二区三区在线播放| 91九色国产| 99久热在线精品视频| 国产毛片精品一区二区色欲黄A片| 亚洲AV女人18毛片水真多| 日本久久久久| 亚洲视频在线观| 国产熟妇搡BBBB搡BBBB搡| 国产婷婷内射| 欧美成人福利视频| 操操操AV| 成年人免费黄色视频| 日韩小电影在线观看| 91成人免费电影片| 日韩成人黄色视频| 操人| 91av电影网| JlZZJLZZJlZZ亚洲女人17| 国产一级特黄aaa大片| 成人国产精品在线观看| 国产精品久久久一区二区三区| 一级色色片| 老司机狠狠干| 国产日韩性爱视频| 一级黄色视频日逼片| 国产欧美一区二区三区视频| 国产操穴视频| 亚洲欧美熟妇久久久久久久久 | 欧美日韩视频一区二区| 蜜臀久久99久久久久久宅男| 西西人体444www| 欧美在线操| 亚洲字幕AV| 国产精品一区二区三区不卡| 亚欧精品久久久| 免费黄色一级视频| 国产三级精品三级在线观看| 日韩在线观看av| 东方AV在| 亚洲精品美女| 91肏屄视频| 日韩色色网| 黄色AV网| 四川乱子伦95视频国产| 日本黄色中文字幕| 蝌蚪窝在线观看| 成人免费版欧美州| 人妻精品| 在线观看A片| 男女嫩草视频| xxx久久| 日韩无码二级| 久热中文在线观看精品视频 | 日产电影一区二区三区| 欧美一级特黄AAAAAA片| 国产日韩欧美一区| 亚洲一级黄色视频| 午夜黄色影院| 高清无码视频免费观看| 77Q视频| 国产操逼网站| 亚洲午夜久久久之蝌蚪窝| 成人欧美一区二区三区白人| 天天操天天射天天爽| 动漫操逼视频| 丁香五月综合啪啪| 一区二区三区日本| 亚洲精品视频免费观看| 国产8区| 色色爱爱| 超碰手机在线| 欧美成人网站在线观看| 精品九九九| 国内自拍激情视频| 大逼影院| 亚洲AV无码乱码国产| 探花极品无套大学生| 亚洲视频91| 91久久爱| 嫩草在线视频| 内射学生妹| 尤物在线视频| 国产麻豆精品ThePorn| 色吊妞| 俺来也俺去www色情网| 激情播播网| aaaaaa在线观看免费高清| 又黄又爽的网站| 美女91视频| 欧美熟妇精品一级A片视色| 亚洲成人AV在线| 亚洲黄色电影| 你懂的在线视频观看| 91丨精品丨国产丨丝袜| 亚洲日韩免费| 91人妻综合| 成人无码区免费A片| 亚洲激情AV| 免费v片| 欧美专区一区| 久久国产2025| 日韩欧美中文字幕公布| 国产一级婬乱片AV片AAA毛片| 久久精品一区二区三区蜜芽的特点| 99视频热| 黄色一区二区三区| 五月激情黄色| 波多野结衣在线无码视频| 国产在线一| 欧美另类| 午夜精品18| 国产美女被操| 麻豆疯狂做受XXXX高潮视频| 国产在线1| 国产精品久久久久久精| 精品四区| 亚洲网站在线| footjobvk| 台湾成人在线视频| 中文四区| 69AV无码| 黄色一级录像| 亚洲AV无码第一区二区三区蜜桃 | 亚洲乱码精品久久久久..| 一级a片在线观看| 国产激情视频在线| 香蕉一级视频| 嫩BBB槡BBBB槡BBBB免费视频| 日韩视频网址| 青青草免费在线| 男女日逼视频| 日屄视频免费看| xxxx色| 久久99久久99| 成人区精品一区二区婷婷| 日本在线播放| 人妖黃色一級A片| 国产做爰XXXⅩ久久久骚妇| 先锋av资源网| 俺去夜| 午夜福利100| 国产精品视频导航| 亚洲第一大网站| 97香蕉久久国产超碰青草专区| 性v天堂| 亚洲精品无码永久| 欧美性生交18XXXXX无码| 亚洲精品久久久久avwww潮水| 黄色成人视频在线免费观看| 韩日美女性爱| 四川性BBB搡BBB爽爽爽小说| 91国内精品视频| 人妻碰碰| 成人黄色免费视频| 亚洲成人动漫在线| 一级日逼视频| 三级精品| 成人大战香蕉最新视频| 影音先锋久久久久AV综合网成人| 大香蕉免费在线观看| 日韩成人网址| 青娱乐极品久久| 性猛交AAAA片免费观看直播| 东京热无码一区| 国产一二三| 国产欧美综合在线三区| 一级片网址| 国产精品三级视频| 俺去夜| 成人免费无码毛片| 青娱乐日韩| 精品麻豆| 欧美一区二区三区婷婷五月| 色婷婷激情在线| 先锋资源一区| 中文字幕国产视频| 18SAV| 91视频网站免费观看| 四季AV一区二区夜夜嗨| 亚洲日韩精品秘在线观看| 久久精品在线观看| 欧美A片在线免费观看| 在线免费观看a| 残忍另类BBWBBWBBW| 日韩无码网站| 伊人久久AV| 无套免费视频欧美| 强伦轩一区二区三区四区播放方式 | 在线免费看黄色| 开心五月色婷婷综合开心网| 欧美日韩一级电影| 东京热高清无码| 欧美三级在线观看视频| www.五月丁香| 一区二区无码在线| 影音先锋乱伦电影| 天天干在线观看| 无码视频免费看| 91麻豆国产福利精品| 免费无码蜜臀在线观看| 9I免费看片黄| 黄色大片中国一级片-免费看特一级片-亚洲黄色AV | 男人操女人视频网站| 无码精品一区二区在线| 大香蕉精品视频在线| 人妻少妇中文字幕久久牛牛| 国产黄色视频免费在线观看| 无码123| 欧美激情婷婷| 日韩不卡AV| 日韩无码中文字幕| 第四色色综合| 亚洲日韩欧美在线观看| 国产自偷自拍| 精品狼友| 久久久久久久精| 嘿咻无码推油| 欧美插菊花综合网| 日韩无码一区二区三区四区| 国产免费观看av| 色五月婷婷久久| 婷婷五月天激情小说| 亚洲伦理一区二区| 久久在线免费视频| 91在线视频播放| 天天操人人射| 免费无码婬片AAAA片直播| 国产96在线亚洲| 欧美成人网站免费在线观看| 黄片免费观看网站| 美女裸体视频网站| 亚洲天堂男人的天堂| 久草福利在线| 国产69AV| 极品人妻疯狂3p超刺激| 激情视频免费看| 久久久久久免费毛片精品| 天天干天天射天天操| 在线视频福利| 天天色天天日天天干| 国产免费精彩视频| 成人免费黄色片| 色婷婷成人做爰A片免费看网站| 午夜爱爱免费视频| 国内精品久久久久| 国产主播精品| 翔田千里在线播放| 樱桃码一区二区三区| 无码人妻AV一区| 久久视频免费| free性欧美| 国产AA片| 色999网址| 人妻少妇精品无码| 影音先锋aV成人无码电影| 人人操人人上| 特级毛片片A片AAAAAA| 麻豆91精品91久久久停运原因| 黄片51| 亚洲色图15p| jlzzzjlzzz国产免费观看 | 自拍偷拍| 成人视频网| A片啪啪| 日本无码中文字幕| 黄色三级A片| 日韩A电影| 久操久操久操| 无码在线电影| 久久日韩无码| 日批国产| 成年人性生活免费视频| 在线观看免费国产| 大鸡吧成人视频| 亚洲少妇无码| 欧洲尤物不卡播放六区| 久久免费视频6| 一区二区视频免费| 狠狠操2019| 亚洲中文字幕一区| 91久久午夜无码鲁丝片久久人妻 | 国产在线观看一区二区| 大香蕉AV电影| 免费在线看a| 国产美女激情视频| 午夜福利在线视频| 亚洲天堂AV2025| A级毛片在线观看| 日本AA视频| 美女日屄| 国产91免费视频| 亚洲你懂的| 久久中文字幕无码| 北条麻妃在线观看| 国产搡BBB爽爽爽视频| 丁香五月激情小说| 欧美A级黄片| 国产亲子乱XXXXinin| 久久国产精| 国产熟妇毛多久久久久一区 | 秋霞无码一区二区三区| 青草福利在线| 九九性视频| 999国产精品| 翔田千里在线一区二区三区| 久久久久免费| 国产黄色视频在线播放| 欧美AAA视频| AV婷婷在线| 国产精品网站在线观看| 国精品无码A区一区二区| 亚洲黄色免费网站| 亚洲高清视频在线播放| 麻豆视频在线观看| 国产人妖网站| 伊人在线视频| 激情综合网五月| 青草伊人网| 九九福利| 蜜桃视频网站在线观看| 天天综合精品| 亚洲射射| 欧美性精品| 国产一区二区三区免费观看 | 青娱乐国产在线| 色鬼综合网| 免费操逼| 国产第一页在线播放| 国产三级片网| 四川少扫搡BBBBB搡B| 无码国产精品一区二区性色AV| 伊人自拍| WWW.99热| 国产xxxx| 超碰人人爱国产视| 日韩不卡高清在线观看视频| 中文字幕一区二区6页| 97精品超碰一区二区三区| 爱爱91| 国产成人综合在线| 详情:绿帽夫妻多人运动开淫啪-91n| 欧美日韩亚洲中文字幕| 日本一区二区三区四区| 极品人妻疯狂3p超刺激| 国产乱子伦一区二区三| 国产欧美日韩在线| 夜夜操夜夜| aaa免费| 免费无码一区| 亚洲加勒比久久88色综合| 日韩高清一区| 免费成人三级片| 两根茎一起进去好爽A片在线观看| 国产又爽又黄免费网站在线看 | 黄色片在线看| 老汉AV| 影音先锋无码一区| 国产三级91| 伊人影院99| 无码精品一区二区三区在线| 青娱乐最新官网| 国产精品99久久免费黑人人妻 | 久久网一区| 一区二区三区高清无码| 日韩无码视屏| 2016av天堂网| 99热超碰在线| 国产成人秘在线观看免费网站| 99精品视频在线| 青草福利在线| 日韩中文字幕一区二区| 午夜国产在线| 久久99国产乱子伦...| 黄色成人视频网站在线观看| 欧美成人性爱视频| 四川少妇搡bbw搡bbbb| 成人免费毛片视频| 人人操人人干人人爽| 亚洲精品白浆高清久久久久久| 免费AV在线| 欧美一级aaa| 日韩一区二区三区四区久久久精品有吗| 无码精品视频| 999国产视频| 免费看黄片视频| 国产精品无码一区二区在线欢| 日韩欧美成人在线视频| 人妖黃色一級A片| 99色视频| 无码无码无码| 国产在线色视频| 18XXX亚洲HD护士JD| 骚逼黄片| 午夜福利免费在线观看| 小骚逼操死你| 自拍做爱视频| 夜夜精品视频| 国产99热| 国产一级AV国产免费| 婷婷五月丁香在线| 亚洲性精| 亚洲精品97久久中文字幕| 精品一区二区三区四| 亚洲无码日| 岛国av在线播放| 欧美国产综合| 国产高清AV无码| 大香伊人| AV无码在线免费观看| 97免费视频在线观看| 成人激情视频| 青青草国产亚洲精品久久| 内射网站在线看| 婷婷综合缴情亚洲另类在线| 日韩av一区二区三区| 超碰伊人大香蕉| 成人福利免费视频| 欧美精品性爱| 先锋成人在线| 日韩在线二区| 国产免费一区二区三区免费视频 | 亚欧视频在线观看| 11孩岁女精品A片BBB| 精品人妻一区| 青草超碰| 黄色大片网址| 一本大道香蕉av久久精东影业| 黄色伊人网| 97精品一区二区三区A片| 无码999| 国产乱子伦真实精品| 韩国精品一区二区三区| 国产香蕉视频在线播放| 久久人妻无码| 日本黄色视频免费观看| 特级西西444www大精品| 综合久久视频| 久久视频一二| 五月天性爱视频| 60分钟上大床又黄又爽| 在线a视频免费观看| 国产狂喷水潮免费网站www| 亚洲一页| 永久免费黄色视频| 精品国产一| 91双飞会所双飞在线| 国产成人精品无码免费| 欧美激情在线观看| 黑人毛片91久久久久久| 国产做受精品网站在线观看| 91亚洲电影| 国内自拍av| 欧美性爱18| 老司机精品视频在线观看| 91人妻成人精品一区二区| 伊人小视频| 精品国产女人| 国产噜噜噜噜噜久久久久久久久 | 国产乱子伦日B视频| 亚洲AV无码免费| 中文字幕色站| 久久久WWW成人免费无遮挡大片 | 国产探花自拍| 久久久久久亚洲精品| 有码中文字幕| 67194熟女| 久久成人国产| 最近最火中文字幕mv歌词| 国产精品无码永久免费A片| 精品免费国产一区二区三区四区的使用方法 | 国产农村妇女精品一二区| 91亚瑟视频| 菊花综合网| 俺去俺来也www色视频| 热久久精品| 国产精品第一| 欧美日韩北条麻妃视频在线观看| 五月丁香六月情| 国产视频导航| 97国产免费| 东方AV在线免费观看| 亚洲无码av中文字幕| 牛牛久久| 最新AV在线播放| 天天爱夜夜操| 国产乱伦自拍| 久草国产视频| 日本三级片网址| 亚洲综合图色40p| 日日骚中文字幕| 黄色一级大片| 亚洲v天堂| 久草精品视频| 亚洲色青| 国产又爽又黄视频| 国产女人18毛片水真多18| 亚洲欧美综合| 99视频网| 亚洲精品成人在线| 狠狠干天天日| 欧美国产综合在线| 九色蝌蚪9l视频蝌蚪9l视频成人熟妇| 日韩AV毛| 免费黄色在线观看| 亚洲高清在线播放| 欧美日韩免费一区二区三区| 亚洲AV免费电影| 又黄又色的视频| 中文字幕五月天| 黄色电影一区二区三区| 成人精品| 91精品一区| 影音先锋二区| 国产亚洲一区二区三区| 99热精品国产| 新中文字幕| 无码秘蜜桃一区二区三区| 激情网站免费| 一级A片视频免费看| 丰满人妻一区二区三区| 91蝌蚪| 日本色色网站| 白嫩外女BBwBBwBBw| 五月婷婷六月婷婷| 91色在线视频| 无码人妻av一区| 日本一本视频| 午夜亚洲国产一区视频网站| 99在线免费观看视频| 九色PORNY自拍视频| 亲子伦一区二区三区| 四虎在线视频| 欧美婬乱片A片AAA毛片地址| 国产色悠悠| 91av在线电影| 五月婷婷中文版| 亚洲啊V| 淫一区二区| av资源在线| 人成视频在线观看| 岛国无码在线| 嫩小槡BBBB槡BBBB槡漫画| 日韩三级成人| 男人的天堂色婷婷| 各种BBwBBwBBwBBw| 欧美日韩一区在线观看| 午夜老司机福利一二三区| 免费视频在线观看黄| 亚洲av小电影| 日韩插插| 五月丁香欧美性爱| 无码视频免费观看| 中文字幕在线第一页| 久久综合中文字幕| 青青草精品视频| 在线免费观看黄色片| 农村一级婬片A片AAA毛片古装| 欧美日韩黄色片| 日本中文视频| ChineSe露脸老女人| 无码导航| AV第一福利大全导航| av亚洲波多野结衣白嫩水多波| 天天久久毛片| 另类综合激情| 十八禁福利网站| 一级成人视频| 日本一区二区三区四区| 欧美黄片AAA| 开心色色五月天| 亚洲成人少妇老妇a视频在线| 国产一区二区三区在线| 人人草人人干| 亚洲av免费| 亚洲精品99| 夜夜骚av一区二区三区| 日本黄色免费| 加勒比综合| 中文字幕日韩在线观看| 天堂网av在线| 17c精品麻豆一区二区免费 | 成人色综合| 18禁一区| 亚洲国产三级片| 国产黄片免费在线观看| 国产情侣在线视频| 四川婬妇BBw搡BBBB搡| 黄页免费视频| 丰满人妻无码| 激情国产视频| 日韩人妻无码一区二区三区| 在线观看日韩AV| 91农村站街老熟女露脸| 国产日韩欧美一区| 婷婷夜色福利网| 超碰在线观看免费| 国产一级二级在线观看| 人妻av中文字幕| 久久精品国产精品| 亚洲中文免费视频| 亚洲色综合久久五月| 91人妻人人| 日韩A∨视频| av资源免费观看| 熟妇人妻中文AV无码| 美女久久久| 狠狠躁夜夜躁人爽| av午夜| 高清AV无码| 亚洲热在线观看| 狠狠久| 久久9热| 国产一级内射| 青青草原av| 韩国精精品视频| 亚洲中文字幕av天堂| 欧美激情内射| 黑人av在线观看| 日韩性无码| 一卡二卡久久| 老熟女网站| 十八无码成人免费网站| 性爱视频99| 日韩欧美一区在线| 亚洲码成人| 草草影院国产第一页| 91丝袜一区二区三区| 岛国av免费看| 91人妻人人澡人人爽人人精品乱 | 大香蕉久久视频| 乱码少妇| 久久91人妻无码精品蜜桃HD| 国产免费操逼| 干妞网免费视频| 波多野结衣无码AV专区| 国内无码自拍| 男人视频网| 在线观看免费视频黄| 处破女初破全过免费看| 狠狠躁18三区二区一区免费人 | 狠久久| 久久一级片| 久久永久免费精品人妻专区| 亚洲天堂2014| 一本色道久久综合狠狠| 亚洲三级视频在线播出| 久久久高清无码视频| 91豆花成人社区| 99精品无码视频| 人人亚洲| 免费视频二区| 逼网站| 性v天堂| 亚洲AV成人片色在线观看麻豆| 免费的黄色A片| 日韩bbbb| 日韩无码视频一区二区| 国产在线视频网站| 波多野结衣亚洲视频| 成人黄色免费观看| 豆花视频成人精品视频| 亚洲一级A片| 俺也来俺也去| 91狠狠爱| 国产—级a毛—a毛免费视频| 一边做一边说国语对白| 色小说在线| 亚洲午夜在线| 天天日天天射天天操| 亚洲精品蜜桃| 欧美一卡二卡| 亚洲精品国产精品乱玛不99| 国产精品久久免费视频| 无码人妻AV一区| 亚洲性无码| 精品亚洲无码视频| 久久大| 日本无码中文字幕| 亚洲激情| 亚洲欧洲在线播放| 丁香五月成人网| 97国产精品久久| 日韩中文在线播放| 久久视频免费| 亚洲日韩一区二区| 最近中文字幕2022在线观看A| 亚洲高潮| 欧美AAAAAAAAAA特级| 影音先锋乱伦| 在线观看免费无码| 中文字幕乱视频| av免费网站| 综合五月婷婷| 性爱av在线观看| 日本一区二区视频在线| 精品视频第一页| 青青操逼视频| 黄色一级大片| 91熟女首页| 黄色大片免费网站| 精品少妇人妻一区二区| 中文字幕第一| 婷婷五月天亚洲| 成人三级视频| 亚洲无人禁区| 免费色色网站| 日本有码在线| 人人爱,人人操| 影音先锋三级片| 国产午夜男女性爱| 西西4444www大胆无吗| 影音先锋成人在线视频| 久久99久久99| 无码精品人妻一区二区三区漫画 | 国产1区在线观看| 黄片高清无码在线观看| 人人射在线| 人妻日韩| 九七影院第二页| 成年人免费看视频| 久久久久999| 欧美成人精品在线| 狠狠狠狠操| 老妇性BBWBBWBBWBBW| 国产在线你懂得| 黄色三级av| 强伦轩一区二区三区四区| 免费毛片基地| 黄色视频在线免费观| 91麻豆国产福利在线观看| 久久久精品久久久| 久久久久亚洲AV成人网人人软件 | 欧美A级黄片| 国产灌醉| 国产在线视频一区二区| 日韩A片在线观看| 中文字幕淫乱视频欧美| 国产女人18水真多18精品| 亚洲视频91| www.俺来也| 蜜臀AV在线| 欧洲无码一区二区三区| 黄色视频在线免费观看网站| 91精品国产91久久久久久久久久 | 日韩av中文字幕在线播放| 亚洲免费黄色片| 18禁激韩| 豆花视频| 性猛交╳XXX乱大交| 欧美内射在线| 内射视频免费观看| 婷婷日韩| 欧美成人精品A片免费一区99| 黄片视频观看| 国产无码中文字幕| 久久免费黄色视频| 日韩人妻精品一区二区| 动漫精品一区二区| 18禁一区| 91精东传媒果冻传媒| 最新av网| 在线aaa| 一级片黄色| 乱码中文字幕日韩欧美在线| 中文字幕精品三区无码| 国产成人AV在线观看| 上床网站| 欧美性猛交一区二区三区精品| 在线久操| а√最新版在线中文8| 特黄网站| 大香蕉伊人操| а中文在线天堂精品| 黄色激情视频网站| 脓肿是什么原因引起的,该怎么治疗 | 精品人妻一区二区免费蜜桃视频| 操你啦日韩| 爱爱视频免费网站| 美日韩免费视频| 黄色精品| 亚洲色综合网| 国产久久在线观看| 久射久| 日韩在线一级片| 福利一区在线观看| 一本一道无码免费看视频| 成人视频在线观看18| 日韩一区二区三区四区久久久精品有吗| 精品久久一区二区| 亚洲综合激情| 免费AV资源在线观看| 中文字幕在线观看二区| 中文字幕亚洲在线观看| 久久久久久无码视频| 亚洲精品一区二区三区四区五区六区 | 欧美中文字幕在线观看| 91无码高清视频| 操逼三级| 亚洲无码免费观看视频| 超碰毛片| 97久久一区二区| 一级免费黄片| 欧美一级无码| 婷婷五月开心五月| 2017人人操| 天天色图片| 亚洲综合中文字幕在线| 永久黄网站| 少妇熟女视频一区二区三区| 黄色片视频免费| 先锋影音av资源网| 国偷自产视频一区二区久| 国产三级在线免费观看| 日韩精品一区二区三区使用方法| 中文乱码在线观看| 俺来射| 91精品国产欧美一区二区成人| 国产欧美在线免费观看| 五月天激情小说网| 亚洲综合小说| 五月丁香人妻| 人妻天天干| 欧美高清无码| 免费在线观看视频a| 7777影视电视剧在线观看官网| 女人特级毛片18| AV大片在线观看| 豆花AV| 中文字幕线观看| 三级片高清无码| 果冻传媒A片一二三区| 色九九视频| 一级无码视频| 悠悠无码一区日韩妇女| 免费在线观看A| 亚洲无码中文字幕在线播放| 黑人av在线观看| 免费日韩毛片| 天天干天天操天天| 欧美在线操| 无码视频一区二区三区| 激情av天堂| 亚洲无码高清在线视频| 日韩综合精品中文字幕66| 水蜜桃成人在线| 成年人免费电影| 久久久久99精品成人片欧美一区| 99热播在线| 久久午夜无码鲁丝片| 日韩av中文字幕在线播放|