国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Python每日任務自動化軟件nox的配備與API詳細信息

89542767 / 491人閱讀

  本文關鍵闡述了Python每日任務自動化軟件nox的配備與API詳細信息,Nox對話是由被nox.session點綴的規范Python函數來配備的,實際詳細信息下面有關詳細介紹需要的朋友可以學習一下


  序言:


  NoxfileNox默認設置在這個名叫noxfile.pe的文檔中搜索配備。在運作nox時,你能應用--noxfile主要參數特定其他的文檔。


  界定對話文件格式:session(func=None,python=None,py=None,reuse_venv=None,name=None,venv_backend=None),要被點綴的函數公式特定為對話。


  Nox對話是由被nox.session點綴的規范Python函數來配備的。


  比如:


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


  會話描述你可以使用文檔字符串向會話中添加一個描述。第一行內容會在列出會話時顯示。


  例如:


  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使用自定義的名稱運行會話:
  $nox--session"custom-name"
  Hello!


  配置會話的virtualenv默認情況下,Nox在為每個會話創建一個新的virtualenv時,會使用Nox所用的同一個解釋器。如果你使用Python 3.6安裝了nox,則nox將默認在所有會話中使用Python 3.6。


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


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

  當你提供一個版本號時,Nox會自動添加python來確定可執行文件的名稱。但是,Nox也可以接受完整的可執行名稱。如果你想使用pypy來測試,例如:


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

  當準備你的會話時,Nox將為每個解釋器創建多帶帶的會話。你可以在運行nox--list的時候看到這些會話。例如這個Noxfile:


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

  將產生這些會話:


  *tests-2.7


  *tests-3.5


  *tests-3.6


  *tests-3.7


  注意,這個擴展發生在參數化之前,所以你仍然可以對多個解釋器的會話進行參數化。


  如果你想完全禁止創建virtualenv,你可以設置python參數為False:


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

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


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


  將參數傳入會話通常往測試會話中傳遞參數是很有用的。下面是一個簡單示例,演示了如何使用參數對特定文件作測試:


  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)


  現在如果你運行:


  nox那么nox將運行:


  pytest test_a.py test_b.py但如果你運行:


  nox--test_c.py那么nox將運行:


  pytest test_c.py


  參數化會話會話的參數可以用nox.parametrize()裝飾器來作參數化。


  下面是一個典型的參數化安裝Django版本的例子:


  nox.session
  nox.parametrize('django',['1.9','2.0'])
  def tests(session,django):
  session.install(f'django=={django}')
  session.run('pytest')
  當你運行nox時,它會創建兩個不同的會話:
  $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的參數化相類似。


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


  作用是參數化一個會話。


  將arg_values_list列表賦給對應的arg_names,為裝飾的會話函數添加新的調用。參數化在會話發現期間執行,每次調用都作為nox的單個會話出現。


  參數:


  arg_names(Sequence[str])——一系列參數名稱


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


  ids(Sequence[str])——可選項,一系列測試id,被參數化的參數使用。


  你也可以堆疊裝飾器,令其產生組合了參數的會話,例如:


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


  運行nox--list時會產生這些會話:


  *tests(psql,old)


  *tests(mysql,old)


  *tests(psql,new)


  *tests(mysql,new)


  會話對象Nox將使用Session類的一個實例來調用你的會話函數。


  class Session(runner):


  會話對象被傳遞到用戶自定義的每個會話函數中。


  這是在Nox會話中安裝軟件包和運行命令的主要途徑。


  bin:——virtualenv的bin目錄


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


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


  conda_install(


  args,


  *kwargs):


  調用conda install來在會話環境中的安裝軟件包。


  直接安裝軟件包:


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


  根據requirements.txt文件來安裝軟件包:


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


  不破壞conda已安裝的依賴而安裝軟件包:


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


  剩下的關鍵字參數跟run()相同。


  env:——一個環境變量的字典,傳給所有的命令。


  error(


  args,


  *kwargs):——立即中止會話并隨意地記錄一個錯誤。


  install(


  args,


  *kwargs):——調用pip在會話的virtualenv里安裝包。


  直接安裝包:


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

  剩下的關鍵字參數跟run()相同。


  interactive:——如果Nox在交互式會話中運行,則返回True,否則返回False。


  log(


  args,


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


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


  此方法是冪等的;對同一會話的多次通知無效。


  參數:target(Union[str,Callable])——需要通知的會話。這可以指定適當的字符串(與nox-s的使用相同)或使用函數對象。


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


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


  run(args,env=None,kwargs):——運行一個命令。


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


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


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


  你不能把所有東西都當作一個字符串傳遞。例如,不可以這樣:


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


  你可以用env為命令設置環境變量:


  session.run(


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


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


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


  session.run(


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


  success_codes=[0,5])


  在Windows上,像del這樣的內置命令不能直接調用,但是你可以使用cmd/c來調用它們:


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


  參數:


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


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


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


  external(bool)——如果為False(默認值),那么不在virtualenv路徑中的程序將發出告警。如果為True,則不會發出告警。這些告警可以使用--error-on-external-run將其轉換為錯誤。這對沒有virtualenv的會話沒有影響。


  skip(


  args,


  *kwargs):——立即跳出會話,并隨意記錄一個告警。


  virtualenv:——運行所有命令的virtualenv。


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


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

  或者,如果你想提供一組默認運行的會話:


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


  以下的選項可以在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。通過在調用時指定--no-reuse-existing-virtualenvs,你可以強制取消它。


  nox.options.stop_on_first_error等同于指定–stop-on-first-error.通過在調用時指定--no-stop-on-first-error,你可以強制取消它。


  nox.options.error_on_missing_interpreters等同于指定–error-on-missing-interpreters。通過在調用時指定--no-error-on-missing-interpreters,你可以強制取消它。


  nox.options.error_on_external_run等同于指定–error-on-external-run.通過在調用時指定--no-error-on-external-run,你可以強制取消它。


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


  在調用nox時,命令行上指定的任何選項都優先于Noxfile中指定的選項。如果在命令行上指定了--sessions或--keywords,那么在Noxfile中指定的兩個選項都將被忽略。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/128693.html

相關文章

  • 讓VIM支持Python2 by update-alternatives

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

    honmaple 評論0 收藏0
  • 15個Python庫,讓你學習數據科學更輕松

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

    W4n9Hu1 評論0 收藏0
  • 前后端分離模式

    摘要:采用前后端分離模式可以減后臺負擔,加快研發效率,當然,前提是前端能做好的話。還是基礎不夠導致的后端是否風格很多公司采用了前后端分離模式后,后端仍然采用以往的傳統風格,這是不合理的,風格的應該是前后端分離的最佳實踐。 showImg(https://segmentfault.com/img/bVFC8f?w=690&h=360);早期的web開發是不分前端后端的。互聯網進入Web2.0時...

    fobnn 評論0 收藏0
  • 前后端分離模式

    摘要:采用前后端分離模式可以減后臺負擔,加快研發效率,當然,前提是前端能做好的話。還是基礎不夠導致的后端是否風格很多公司采用了前后端分離模式后,后端仍然采用以往的傳統風格,這是不合理的,風格的應該是前后端分離的最佳實踐。 showImg(https://segmentfault.com/img/bVFC8f?w=690&h=360);早期的web開發是不分前端后端的。互聯網進入Web2.0時...

    DesGemini 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<