亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專(zhuān)欄INFORMATION COLUMN

Python每日任務(wù)自動(dòng)化軟件nox的配備與API詳細(xì)信息

89542767 / 565人閱讀

  本文關(guān)鍵闡述了Python每日任務(wù)自動(dòng)化軟件nox的配備與API詳細(xì)信息,Nox對(duì)話(huà)是由被nox.session點(diǎn)綴的規(guī)范Python函數(shù)來(lái)配備的,實(shí)際詳細(xì)信息下面有關(guān)詳細(xì)介紹需要的朋友可以學(xué)習(xí)一下


  序言:


  NoxfileNox默認(rèn)設(shè)置在這個(gè)名叫noxfile.pe的文檔中搜索配備。在運(yùn)作nox時(shí),你能應(yīng)用--noxfile主要參數(shù)特定其他的文檔。


  界定對(duì)話(huà)文件格式:session(func=None,python=None,py=None,reuse_venv=None,name=None,venv_backend=None),要被點(diǎn)綴的函數(shù)公式特定為對(duì)話(huà)。


  Nox對(duì)話(huà)是由被nox.session點(diǎn)綴的規(guī)范Python函數(shù)來(lái)配備的。


  比如:


  import nox
  nox.session
  def tests(session):
  session.run('pytest')


  會(huì)話(huà)描述你可以使用文檔字符串向會(huì)話(huà)中添加一個(gè)描述。第一行內(nèi)容會(huì)在列出會(huì)話(huà)時(shí)顯示。


  例如:


  import nox
  nox.session
  def tests(session):
  """Run the test suite."""
  session.run('pytest')


  nox--list命令將顯示出:


  $nox--list
  Available sessions:
  *tests->Run the test suite.
  你可以告訴nox使用自定義的名稱(chēng)運(yùn)行會(huì)話(huà):
  $nox--session"custom-name"
  Hello!


  配置會(huì)話(huà)的virtualenv默認(rèn)情況下,Nox在為每個(gè)會(huì)話(huà)創(chuàng)建一個(gè)新的virtualenv時(shí),會(huì)使用Nox所用的同一個(gè)解釋器。如果你使用Python 3.6安裝了nox,則nox將默認(rèn)在所有會(huì)話(huà)中使用Python 3.6。


  通過(guò)給nox.session指定python參數(shù)(或其別名py),你可以告訴nox使用不同的Python解釋器/版本:


  nox.session(python='2.7')
  def tests(session):
  pass

  當(dāng)你提供一個(gè)版本號(hào)時(shí),Nox會(huì)自動(dòng)添加python來(lái)確定可執(zhí)行文件的名稱(chēng)。但是,Nox也可以接受完整的可執(zhí)行名稱(chēng)。如果你想使用pypy來(lái)測(cè)試,例如:


  nox.session(python=['2.7','3.6','pypy-6.0'])
  def tests(session):
  pass

  當(dāng)準(zhǔn)備你的會(huì)話(huà)時(shí),Nox將為每個(gè)解釋器創(chuàng)建多帶帶的會(huì)話(huà)。你可以在運(yùn)行nox--list的時(shí)候看到這些會(huì)話(huà)。例如這個(gè)Noxfile:


  nox.session(python=['2.7','3.5','3.6','3.7'])
  def tests(session):
  pass

  將產(chǎn)生這些會(huì)話(huà):


  *tests-2.7


  *tests-3.5


  *tests-3.6


  *tests-3.7


  注意,這個(gè)擴(kuò)展發(fā)生在參數(shù)化之前,所以你仍然可以對(duì)多個(gè)解釋器的會(huì)話(huà)進(jìn)行參數(shù)化。


  如果你想完全禁止創(chuàng)建virtualenv,你可以設(shè)置python參數(shù)為False:


  nox.session(python=False)
  def tests(session):
  pass

  最后,你還可以指定每次都重用virtualenv,而不是重新創(chuàng)建:


  nox.session(
  python=['2.7','3.6'],
  reuse_venv=True)
  def tests(session):
  pass


  將參數(shù)傳入會(huì)話(huà)通常往測(cè)試會(huì)話(huà)中傳遞參數(shù)是很有用的。下面是一個(gè)簡(jiǎn)單示例,演示了如何使用參數(shù)對(duì)特定文件作測(cè)試:


  nox.session
  def test(session):
  session.install('pytest')
  if session.posargs:
  test_files=session.posargs
  else:
  test_files=['test_a.py','test_b.py']
  session.run('pytest',*test_files)


  現(xiàn)在如果你運(yùn)行:


  nox那么nox將運(yùn)行:


  pytest test_a.py test_b.py但如果你運(yùn)行:


  nox--test_c.py那么nox將運(yùn)行:


  pytest test_c.py


  參數(shù)化會(huì)話(huà)會(huì)話(huà)的參數(shù)可以用nox.parametrize()裝飾器來(lái)作參數(shù)化。


  下面是一個(gè)典型的參數(shù)化安裝Django版本的例子:


  nox.session
  nox.parametrize('django',['1.9','2.0'])
  def tests(session,django):
  session.install(f'django=={django}')
  session.run('pytest')
  當(dāng)你運(yùn)行nox時(shí),它會(huì)創(chuàng)建兩個(gè)不同的會(huì)話(huà):
  $nox
  nox>Running session tests(django='1.9')
  nox>pip install django==1.9
  ...
  nox>Running session tests(djano='2.0')
  nox>pip install django==2.0


  nox.parametrize()的接口和用法故意跟pytest的參數(shù)化相類(lèi)似。


  格式:parametrize(arg_names,arg_values_list,ids=None)


  作用是參數(shù)化一個(gè)會(huì)話(huà)。


  將arg_values_list列表賦給對(duì)應(yīng)的arg_names,為裝飾的會(huì)話(huà)函數(shù)添加新的調(diào)用。參數(shù)化在會(huì)話(huà)發(fā)現(xiàn)期間執(zhí)行,每次調(diào)用都作為nox的單個(gè)會(huì)話(huà)出現(xiàn)。


  參數(shù):


  arg_names(Sequence[str])——一系列參數(shù)名稱(chēng)


  arg_values_list(Sequence[Union[Any,Tuple]])——參數(shù)值列表決定了使用不同參數(shù)值調(diào)用會(huì)話(huà)的頻率。如果只指定了一個(gè)參數(shù)名,那么這就是一個(gè)簡(jiǎn)單的值列表,例如[1,2,3]。如果指定了N個(gè)參數(shù)名,這必須是一個(gè)N元組的列表,其中每個(gè)元素為其各自的參數(shù)名指定一個(gè)值,例如[(1,'a'),(2,'b')]。


  ids(Sequence[str])——可選項(xiàng),一系列測(cè)試id,被參數(shù)化的參數(shù)使用。


  你也可以堆疊裝飾器,令其產(chǎn)生組合了參數(shù)的會(huì)話(huà),例如:


  nox.session
  nox.parametrize('django',['1.9','2.0'])
  nox.parametrize('database',['postgres','mysql'])
  def tests(session,django,database):
  ...


  運(yùn)行nox--list時(shí)會(huì)產(chǎn)生這些會(huì)話(huà):


  *tests(psql,old)


  *tests(mysql,old)


  *tests(psql,new)


  *tests(mysql,new)


  會(huì)話(huà)對(duì)象Nox將使用Session類(lèi)的一個(gè)實(shí)例來(lái)調(diào)用你的會(huì)話(huà)函數(shù)。


  class Session(runner):


  會(huì)話(huà)對(duì)象被傳遞到用戶(hù)自定義的每個(gè)會(huì)話(huà)函數(shù)中。


  這是在Nox會(huì)話(huà)中安裝軟件包和運(yùn)行命令的主要途徑。


  bin:——virtualenv的bin目錄


  cd(dir):——chdir()的一個(gè)別名


  chdir(dir):——更改當(dāng)前的工作目錄


  conda_install(


  args,


  *kwargs):


  調(diào)用conda install來(lái)在會(huì)話(huà)環(huán)境中的安裝軟件包。


  直接安裝軟件包:


  session.conda_install('pandas')
  session.conda_install('numpy','scipy')
  session.conda_install('--channel=conda-forge','dask==2.1.0')


  根據(jù)requirements.txt文件來(lái)安裝軟件包:


  session.conda_install('--file','requirements.txt')
  session.conda_install('--file','requirements-dev.txt')


  不破壞conda已安裝的依賴(lài)而安裝軟件包:


  session.install('.','--no-deps')
  #Install in editable mode.
  session.install('-e','.','--no-deps')


  剩下的關(guān)鍵字參數(shù)跟run()相同。


  env:——一個(gè)環(huán)境變量的字典,傳給所有的命令。


  error(


  args,


  *kwargs):——立即中止會(huì)話(huà)并隨意地記錄一個(gè)錯(cuò)誤。


  install(


  args,


  *kwargs):——調(diào)用pip在會(huì)話(huà)的virtualenv里安裝包。


  直接安裝包:


  session.install('pytest')
  session.install('requests','mock')
  session.install('requests[security]==2.9.1')
  根據(jù)requirements.txt文件來(lái)安裝軟件包:
  session.install('-r','requirements.txt')
  session.install('-r','requirements-dev.txt')
  安裝當(dāng)前的包:
  session.install('.')
  #Install in editable mode.
  session.install('-e','.')

  剩下的關(guān)鍵字參數(shù)跟run()相同。


  interactive:——如果Nox在交互式會(huì)話(huà)中運(yùn)行,則返回True,否則返回False。


  log(


  args,


  *kwargs):——在會(huì)話(huà)期間輸出一份日志。


  notify(target):——將給定的會(huì)話(huà)放在隊(duì)列的末尾。


  此方法是冪等的;對(duì)同一會(huì)話(huà)的多次通知無(wú)效。


  參數(shù):target(Union[str,Callable])——需要通知的會(huì)話(huà)。這可以指定適當(dāng)?shù)淖址?與nox-s的使用相同)或使用函數(shù)對(duì)象。


  posargs:——用于設(shè)置從命令行上傳給nox的額外參數(shù)。


  python:——傳給nox.session的Python版本。


  run(args,env=None,kwargs):——運(yùn)行一個(gè)命令。


  命令必須安裝字符串列表指定,例如:


  session.run('pytest','-k','fast','tests/')


  session.run('flake8','--import-order-style=google')


  你不能把所有東西都當(dāng)作一個(gè)字符串傳遞。例如,不可以這樣:


  session.run('pytest-k fast tests/')


  你可以用env為命令設(shè)置環(huán)境變量:


  session.run(


  'bash','-c','echo$SOME_ENV',


  env={'SOME_ENV':'Hello'})


  你還可以使用success_codes,告訴nox將非零退出碼視為成功。例如,如果你想將pytest的“tests discovered,but none selected”錯(cuò)誤視為成功:


  session.run(


  'pytest','-k','not slow',


  success_codes=[0,5])


  在Windows上,像del這樣的內(nèi)置命令不能直接調(diào)用,但是你可以使用cmd/c來(lái)調(diào)用它們:


  session.run('cmd','/c','del','docs/modules.rst')


  參數(shù):


  env(dict or None)——用于向命令公開(kāi)的環(huán)境變量字典。默認(rèn)情況下,傳遞所有環(huán)境變量。


  silent(bool)——靜默命令輸出,除非命令失敗。默認(rèn)為False。


  success_codes(list,tuple,or None)——一系列被認(rèn)為是成功的返回碼。默認(rèn)情況下,只有0被認(rèn)為是成功的。


  external(bool)——如果為False(默認(rèn)值),那么不在virtualenv路徑中的程序?qū)l(fā)出告警。如果為T(mén)rue,則不會(huì)發(fā)出告警。這些告警可以使用--error-on-external-run將其轉(zhuǎn)換為錯(cuò)誤。這對(duì)沒(méi)有virtualenv的會(huì)話(huà)沒(méi)有影響。


  skip(


  args,


  *kwargs):——立即跳出會(huì)話(huà),并隨意記錄一個(gè)告警。


  virtualenv:——運(yùn)行所有命令的virtualenv。


  修改Noxfile中的Nox行為Nox有各種命令行參數(shù),可用于修改其行為。其中一些還可以在Noxfile中使用nox.options指定。例如,如果你想將Nox的virtualenvs存儲(chǔ)在不同的目錄中,而不需要每次都將它傳遞給nox:


  import nox
  nox.options.envdir=".cache"
  nox.session
  def tests(session):
  ...

  或者,如果你想提供一組默認(rèn)運(yùn)行的會(huì)話(huà):


  import nox
  nox.options.sessions=["lint","tests-3.6"]
  ...


  以下的選項(xiàng)可以在Noxfile中指定:


  nox.options.envdir等同于指定–envdir.


  nox.options.sessions等同于指定-s or–sessions.


  nox.options.keywords等同于指定-k or–keywords.


  nox.options.reuse_existing_virtualenvs等同于指定–reuse-existing-virtualenvs。通過(guò)在調(diào)用時(shí)指定--no-reuse-existing-virtualenvs,你可以強(qiáng)制取消它。


  nox.options.stop_on_first_error等同于指定–stop-on-first-error.通過(guò)在調(diào)用時(shí)指定--no-stop-on-first-error,你可以強(qiáng)制取消它。


  nox.options.error_on_missing_interpreters等同于指定–error-on-missing-interpreters。通過(guò)在調(diào)用時(shí)指定--no-error-on-missing-interpreters,你可以強(qiáng)制取消它。


  nox.options.error_on_external_run等同于指定–error-on-external-run.通過(guò)在調(diào)用時(shí)指定--no-error-on-external-run,你可以強(qiáng)制取消它。


  nox.options.report等同于指定–report。


  在調(diào)用nox時(shí),命令行上指定的任何選項(xiàng)都優(yōu)先于Noxfile中指定的選項(xiàng)。如果在命令行上指定了--sessions或--keywords,那么在Noxfile中指定的兩個(gè)選項(xiàng)都將被忽略。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/128693.html

相關(guān)文章

  • 讓VIM支持Python2 by update-alternatives

    摘要:前言中所安裝的只支持,但很多插件如和均需要,那就來(lái)場(chǎng)生命貴在折騰吧自檢在中輸入以下命令,若出現(xiàn)則表示不支持,則表示支持表示不支持,則表示支持。重置符號(hào)鏈接然后輸入按回車(chē)。上圖中的值最高,因此若處于時(shí),應(yīng)該為。 前言 ?Ubuntu 16+中$ sudo apt install vim所安裝的vim只支持Python3,但很多插件如YCM和powerline均需要Python2,那就來(lái)場(chǎng)...

    honmaple 評(píng)論0 收藏0
  • 15個(gè)Python庫(kù),讓你學(xué)習(xí)數(shù)據(jù)科學(xué)更輕松

    摘要:在本節(jié)中,我們將看到一些最流行和最常用的庫(kù),用于機(jī)器學(xué)習(xí)和深度學(xué)習(xí)是用于數(shù)據(jù)挖掘,分析和機(jī)器學(xué)習(xí)的最流行的庫(kù)。愿碼提示網(wǎng)址是一個(gè)基于的框架,用于使用多個(gè)或進(jìn)行有效的機(jī)器學(xué)習(xí)和深度學(xué)習(xí)。 showImg(https://segmentfault.com/img/remote/1460000018961827?w=999&h=562); 來(lái)源 | 愿碼(ChainDesk.CN)內(nèi)容編輯...

    W4n9Hu1 評(píng)論0 收藏0
  • 前后端分離模式

    摘要:采用前后端分離模式可以減后臺(tái)負(fù)擔(dān),加快研發(fā)效率,當(dāng)然,前提是前端能做好的話(huà)。還是基礎(chǔ)不夠?qū)е碌暮蠖耸欠耧L(fēng)格很多公司采用了前后端分離模式后,后端仍然采用以往的傳統(tǒng)風(fēng)格,這是不合理的,風(fēng)格的應(yīng)該是前后端分離的最佳實(shí)踐。 showImg(https://segmentfault.com/img/bVFC8f?w=690&h=360);早期的web開(kāi)發(fā)是不分前端后端的。互聯(lián)網(wǎng)進(jìn)入Web2.0時(shí)...

    fobnn 評(píng)論0 收藏0
  • 前后端分離模式

    摘要:采用前后端分離模式可以減后臺(tái)負(fù)擔(dān),加快研發(fā)效率,當(dāng)然,前提是前端能做好的話(huà)。還是基礎(chǔ)不夠?qū)е碌暮蠖耸欠耧L(fēng)格很多公司采用了前后端分離模式后,后端仍然采用以往的傳統(tǒng)風(fēng)格,這是不合理的,風(fēng)格的應(yīng)該是前后端分離的最佳實(shí)踐。 showImg(https://segmentfault.com/img/bVFC8f?w=690&h=360);早期的web開(kāi)發(fā)是不分前端后端的。互聯(lián)網(wǎng)進(jìn)入Web2.0時(shí)...

    DesGemini 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<