12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895 |
- <!DOCTYPE html>
- <!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
- <!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
- <head>
- <meta charset="utf-8">
-
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
-
- <title>grpc — grpcio 1.8.0 documentation</title>
-
-
-
-
-
-
-
-
-
-
-
-
- <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
-
-
-
- <link rel="index" title="Index"
- href="../genindex.html"/>
- <link rel="search" title="Search" href="../search.html"/>
- <link rel="top" title="grpcio 1.8.0 documentation" href="../index.html"/>
- <link rel="up" title="Module code" href="index.html"/>
-
- <script src="../_static/js/modernizr.min.js"></script>
- <script type="text/javascript"> (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-60127042-1', 'auto'); ga('send', 'pageview'); </script></head>
- <body class="wy-body-for-nav" role="document">
-
- <div class="wy-grid-for-nav">
-
- <nav data-toggle="wy-nav-shift" class="wy-nav-side">
- <div class="wy-side-scroll">
- <div class="wy-side-nav-search">
-
-
- <a href="../index.html" class="icon icon-home"> grpcio
-
-
- </a>
-
-
-
- <div class="version">
- 1.8.0
- </div>
-
-
-
- <div role="search">
- <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
- <input type="text" name="q" placeholder="Search docs" />
- <input type="hidden" name="check_keywords" value="yes" />
- <input type="hidden" name="area" value="default" />
- </form>
- </div>
-
- </div>
- <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
-
-
-
-
-
-
- <p class="caption"><span class="caption-text">Contents:</span></p>
- <ul>
- <li class="toctree-l1"><a class="reference internal" href="../grpc.html">grpc package</a></li>
- <li class="toctree-l1"><a class="reference internal" href="../grpc.html#glossary">Glossary</a></li>
- </ul>
-
-
- </div>
- </div>
- </nav>
- <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
-
- <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
-
- <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
- <a href="../index.html">grpcio</a>
-
- </nav>
-
- <div class="wy-nav-content">
- <div class="rst-content">
-
- <div role="navigation" aria-label="breadcrumbs navigation">
- <ul class="wy-breadcrumbs">
-
- <li><a href="../index.html">Docs</a> »</li>
-
- <li><a href="index.html">Module code</a> »</li>
-
- <li>grpc</li>
-
-
- <li class="wy-breadcrumbs-aside">
-
-
-
- </li>
-
- </ul>
-
- <hr/>
- </div>
- <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
- <div itemprop="articleBody">
-
- <h1>Source code for grpc</h1><div class="highlight"><pre>
- <span></span><span class="c1"># Copyright 2015-2016 gRPC authors.</span>
- <span class="c1">#</span>
- <span class="c1"># Licensed under the Apache License, Version 2.0 (the "License");</span>
- <span class="c1"># you may not use this file except in compliance with the License.</span>
- <span class="c1"># You may obtain a copy of the License at</span>
- <span class="c1">#</span>
- <span class="c1"># http://www.apache.org/licenses/LICENSE-2.0</span>
- <span class="c1">#</span>
- <span class="c1"># Unless required by applicable law or agreed to in writing, software</span>
- <span class="c1"># distributed under the License is distributed on an "AS IS" BASIS,</span>
- <span class="c1"># WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
- <span class="c1"># See the License for the specific language governing permissions and</span>
- <span class="c1"># limitations under the License.</span>
- <span class="sd">"""gRPC's Python API."""</span>
- <span class="kn">import</span> <span class="nn">abc</span>
- <span class="kn">import</span> <span class="nn">enum</span>
- <span class="kn">import</span> <span class="nn">sys</span>
- <span class="kn">import</span> <span class="nn">six</span>
- <span class="kn">from</span> <span class="nn">grpc._cython</span> <span class="k">import</span> <span class="n">cygrpc</span> <span class="k">as</span> <span class="n">_cygrpc</span>
- <span class="c1">############################## Future Interface ###############################</span>
- <div class="viewcode-block" id="FutureTimeoutError"><a class="viewcode-back" href="../grpc.html#grpc.FutureTimeoutError">[docs]</a><span class="k">class</span> <span class="nc">FutureTimeoutError</span><span class="p">(</span><span class="ne">Exception</span><span class="p">):</span>
- <span class="sd">"""Indicates that a method call on a Future timed out."""</span></div>
- <div class="viewcode-block" id="FutureCancelledError"><a class="viewcode-back" href="../grpc.html#grpc.FutureCancelledError">[docs]</a><span class="k">class</span> <span class="nc">FutureCancelledError</span><span class="p">(</span><span class="ne">Exception</span><span class="p">):</span>
- <span class="sd">"""Indicates that the computation underlying a Future was cancelled."""</span></div>
- <div class="viewcode-block" id="Future"><a class="viewcode-back" href="../grpc.html#grpc.Future">[docs]</a><span class="k">class</span> <span class="nc">Future</span><span class="p">(</span><span class="n">six</span><span class="o">.</span><span class="n">with_metaclass</span><span class="p">(</span><span class="n">abc</span><span class="o">.</span><span class="n">ABCMeta</span><span class="p">)):</span>
- <span class="sd">"""A representation of a computation in another control flow.</span>
- <span class="sd"> Computations represented by a Future may be yet to be begun, may be ongoing,</span>
- <span class="sd"> or may have already completed.</span>
- <span class="sd"> """</span>
- <div class="viewcode-block" id="Future.cancel"><a class="viewcode-back" href="../grpc.html#grpc.Future.cancel">[docs]</a> <span class="nd">@abc</span><span class="o">.</span><span class="n">abstractmethod</span>
- <span class="k">def</span> <span class="nf">cancel</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
- <span class="sd">"""Attempts to cancel the computation.</span>
- <span class="sd"> This method does not block.</span>
- <span class="sd"> Returns:</span>
- <span class="sd"> bool:</span>
- <span class="sd"> Returns True if the computation was canceled.</span>
- <span class="sd"> Returns False under all other circumstances, for example:</span>
- <span class="sd"> 1. computation has begun and could not be canceled.</span>
- <span class="sd"> 2. computation has finished</span>
- <span class="sd"> 3. computation is scheduled for execution and it is impossible to</span>
- <span class="sd"> determine its state without blocking.</span>
- <span class="sd"> """</span>
- <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">()</span></div>
- <div class="viewcode-block" id="Future.cancelled"><a class="viewcode-back" href="../grpc.html#grpc.Future.cancelled">[docs]</a> <span class="nd">@abc</span><span class="o">.</span><span class="n">abstractmethod</span>
- <span class="k">def</span> <span class="nf">cancelled</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
- <span class="sd">"""Describes whether the computation was cancelled.</span>
- <span class="sd"> This method does not block.</span>
- <span class="sd"> Returns:</span>
- <span class="sd"> bool:</span>
- <span class="sd"> Returns True if the computation was cancelled before its result became</span>
- <span class="sd"> available.</span>
- <span class="sd"> False under all other circumstances, for example:</span>
- <span class="sd"> 1. computation was not cancelled.</span>
- <span class="sd"> 2. computation's result is available.</span>
- <span class="sd"> """</span>
- <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">()</span></div>
- <div class="viewcode-block" id="Future.running"><a class="viewcode-back" href="../grpc.html#grpc.Future.running">[docs]</a> <span class="nd">@abc</span><span class="o">.</span><span class="n">abstractmethod</span>
- <span class="k">def</span> <span class="nf">running</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
- <span class="sd">"""Describes whether the computation is taking place.</span>
- <span class="sd"> This method does not block.</span>
- <span class="sd"> Returns:</span>
- <span class="sd"> bool:</span>
- <span class="sd"> Returns True if the computation is scheduled for execution or currently</span>
- <span class="sd"> executing.</span>
- <span class="sd"> Returns False if the computation already executed or was cancelled.</span>
- <span class="sd"> """</span>
- <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">()</span></div>
- <div class="viewcode-block" id="Future.done"><a class="viewcode-back" href="../grpc.html#grpc.Future.done">[docs]</a> <span class="nd">@abc</span><span class="o">.</span><span class="n">abstractmethod</span>
- <span class="k">def</span> <span class="nf">done</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
- <span class="sd">"""Describes whether the computation has taken place.</span>
- <span class="sd"> This method does not block.</span>
- <span class="sd"> Returns:</span>
- <span class="sd"> bool:</span>
- <span class="sd"> Returns True if the computation already executed or was cancelled.</span>
- <span class="sd"> Returns False if the computation is scheduled for execution or currently</span>
- <span class="sd"> executing.</span>
- <span class="sd"> This is exactly opposite of the running() method's result.</span>
- <span class="sd"> """</span>
- <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">()</span></div>
- <div class="viewcode-block" id="Future.result"><a class="viewcode-back" href="../grpc.html#grpc.Future.result">[docs]</a> <span class="nd">@abc</span><span class="o">.</span><span class="n">abstractmethod</span>
- <span class="k">def</span> <span class="nf">result</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">timeout</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
- <span class="sd">"""Returns the result of the computation or raises its exception.</span>
- <span class="sd"> This method may return immediately or may block.</span>
- <span class="sd"> Args:</span>
- <span class="sd"> timeout: The length of time in seconds to wait for the computation to</span>
- <span class="sd"> finish or be cancelled. If None, the call will block until the</span>
- <span class="sd"> computations's termination.</span>
- <span class="sd"> Returns:</span>
- <span class="sd"> The return value of the computation.</span>
- <span class="sd"> Raises:</span>
- <span class="sd"> FutureTimeoutError: If a timeout value is passed and the computation does</span>
- <span class="sd"> not terminate within the allotted time.</span>
- <span class="sd"> FutureCancelledError: If the computation was cancelled.</span>
- <span class="sd"> Exception: If the computation raised an exception, this call will raise</span>
- <span class="sd"> the same exception.</span>
- <span class="sd"> """</span>
- <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">()</span></div>
- <div class="viewcode-block" id="Future.exception"><a class="viewcode-back" href="../grpc.html#grpc.Future.exception">[docs]</a> <span class="nd">@abc</span><span class="o">.</span><span class="n">abstractmethod</span>
- <span class="k">def</span> <span class="nf">exception</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">timeout</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
- <span class="sd">"""Return the exception raised by the computation.</span>
- <span class="sd"> This method may return immediately or may block.</span>
- <span class="sd"> Args:</span>
- <span class="sd"> timeout: The length of time in seconds to wait for the computation to</span>
- <span class="sd"> terminate or be cancelled. If None, the call will block until the</span>
- <span class="sd"> computations's termination.</span>
- <span class="sd"> Returns:</span>
- <span class="sd"> The exception raised by the computation, or None if the computation did</span>
- <span class="sd"> not raise an exception.</span>
- <span class="sd"> Raises:</span>
- <span class="sd"> FutureTimeoutError: If a timeout value is passed and the computation does</span>
- <span class="sd"> not terminate within the allotted time.</span>
- <span class="sd"> FutureCancelledError: If the computation was cancelled.</span>
- <span class="sd"> """</span>
- <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">()</span></div>
- <div class="viewcode-block" id="Future.traceback"><a class="viewcode-back" href="../grpc.html#grpc.Future.traceback">[docs]</a> <span class="nd">@abc</span><span class="o">.</span><span class="n">abstractmethod</span>
- <span class="k">def</span> <span class="nf">traceback</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">timeout</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
- <span class="sd">"""Access the traceback of the exception raised by the computation.</span>
- <span class="sd"> This method may return immediately or may block.</span>
- <span class="sd"> Args:</span>
- <span class="sd"> timeout: The length of time in seconds to wait for the computation to</span>
- <span class="sd"> terminate or be cancelled. If None, the call will block until the</span>
- <span class="sd"> computations's termination.</span>
- <span class="sd"> Returns:</span>
- <span class="sd"> The traceback of the exception raised by the computation, or None if the</span>
- <span class="sd"> computation did not raise an exception.</span>
- <span class="sd"> Raises:</span>
- <span class="sd"> FutureTimeoutError: If a timeout value is passed and the computation does</span>
- <span class="sd"> not terminate within the allotted time.</span>
- <span class="sd"> FutureCancelledError: If the computation was cancelled.</span>
- <span class="sd"> """</span>
- <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">()</span></div>
- <div class="viewcode-block" id="Future.add_done_callback"><a class="viewcode-back" href="../grpc.html#grpc.Future.add_done_callback">[docs]</a> <span class="nd">@abc</span><span class="o">.</span><span class="n">abstractmethod</span>
- <span class="k">def</span> <span class="nf">add_done_callback</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">fn</span><span class="p">):</span>
- <span class="sd">"""Adds a function to be called at completion of the computation.</span>
- <span class="sd"> The callback will be passed this Future object describing the outcome of</span>
- <span class="sd"> the computation.</span>
- <span class="sd"> If the computation has already completed, the callback will be called</span>
- <span class="sd"> immediately.</span>
- <span class="sd"> Args:</span>
- <span class="sd"> fn: A callable taking this Future object as its single parameter.</span>
- <span class="sd"> """</span>
- <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">()</span></div></div>
- <span class="c1">################################ gRPC Enums ##################################</span>
- <div class="viewcode-block" id="ChannelConnectivity"><a class="viewcode-back" href="../grpc.html#grpc.ChannelConnectivity">[docs]</a><span class="nd">@enum</span><span class="o">.</span><span class="n">unique</span>
- <span class="k">class</span> <span class="nc">ChannelConnectivity</span><span class="p">(</span><span class="n">enum</span><span class="o">.</span><span class="n">Enum</span><span class="p">):</span>
- <span class="sd">"""Mirrors grpc_connectivity_state in the gRPC Core.</span>
- <span class="sd"> Attributes:</span>
- <span class="sd"> IDLE: The channel is idle.</span>
- <span class="sd"> CONNECTING: The channel is connecting.</span>
- <span class="sd"> READY: The channel is ready to conduct RPCs.</span>
- <span class="sd"> TRANSIENT_FAILURE: The channel has seen a failure from which it expects to</span>
- <span class="sd"> recover.</span>
- <span class="sd"> SHUTDOWN: The channel has seen a failure from which it cannot recover.</span>
- <span class="sd"> """</span>
- <span class="n">IDLE</span> <span class="o">=</span> <span class="p">(</span><span class="n">_cygrpc</span><span class="o">.</span><span class="n">ConnectivityState</span><span class="o">.</span><span class="n">idle</span><span class="p">,</span> <span class="s1">'idle'</span><span class="p">)</span>
- <span class="n">CONNECTING</span> <span class="o">=</span> <span class="p">(</span><span class="n">_cygrpc</span><span class="o">.</span><span class="n">ConnectivityState</span><span class="o">.</span><span class="n">connecting</span><span class="p">,</span> <span class="s1">'connecting'</span><span class="p">)</span>
- <span class="n">READY</span> <span class="o">=</span> <span class="p">(</span><span class="n">_cygrpc</span><span class="o">.</span><span class="n">ConnectivityState</span><span class="o">.</span><span class="n">ready</span><span class="p">,</span> <span class="s1">'ready'</span><span class="p">)</span>
- <span class="n">TRANSIENT_FAILURE</span> <span class="o">=</span> <span class="p">(</span><span class="n">_cygrpc</span><span class="o">.</span><span class="n">ConnectivityState</span><span class="o">.</span><span class="n">transient_failure</span><span class="p">,</span>
- <span class="s1">'transient failure'</span><span class="p">)</span>
- <span class="n">SHUTDOWN</span> <span class="o">=</span> <span class="p">(</span><span class="n">_cygrpc</span><span class="o">.</span><span class="n">ConnectivityState</span><span class="o">.</span><span class="n">shutdown</span><span class="p">,</span> <span class="s1">'shutdown'</span><span class="p">)</span></div>
- <div class="viewcode-block" id="StatusCode"><a class="viewcode-back" href="../grpc.html#grpc.StatusCode">[docs]</a><span class="nd">@enum</span><span class="o">.</span><span class="n">unique</span>
- <span class="k">class</span> <span class="nc">StatusCode</span><span class="p">(</span><span class="n">enum</span><span class="o">.</span><span class="n">Enum</span><span class="p">):</span>
- <span class="sd">"""Mirrors grpc_status_code in the gRPC Core."""</span>
- <span class="n">OK</span> <span class="o">=</span> <span class="p">(</span><span class="n">_cygrpc</span><span class="o">.</span><span class="n">StatusCode</span><span class="o">.</span><span class="n">ok</span><span class="p">,</span> <span class="s1">'ok'</span><span class="p">)</span>
- <span class="n">CANCELLED</span> <span class="o">=</span> <span class="p">(</span><span class="n">_cygrpc</span><span class="o">.</span><span class="n">StatusCode</span><span class="o">.</span><span class="n">cancelled</span><span class="p">,</span> <span class="s1">'cancelled'</span><span class="p">)</span>
- <span class="n">UNKNOWN</span> <span class="o">=</span> <span class="p">(</span><span class="n">_cygrpc</span><span class="o">.</span><span class="n">StatusCode</span><span class="o">.</span><span class="n">unknown</span><span class="p">,</span> <span class="s1">'unknown'</span><span class="p">)</span>
- <span class="n">INVALID_ARGUMENT</span> <span class="o">=</span> <span class="p">(</span><span class="n">_cygrpc</span><span class="o">.</span><span class="n">StatusCode</span><span class="o">.</span><span class="n">invalid_argument</span><span class="p">,</span> <span class="s1">'invalid argument'</span><span class="p">)</span>
- <span class="n">DEADLINE_EXCEEDED</span> <span class="o">=</span> <span class="p">(</span><span class="n">_cygrpc</span><span class="o">.</span><span class="n">StatusCode</span><span class="o">.</span><span class="n">deadline_exceeded</span><span class="p">,</span>
- <span class="s1">'deadline exceeded'</span><span class="p">)</span>
- <span class="n">NOT_FOUND</span> <span class="o">=</span> <span class="p">(</span><span class="n">_cygrpc</span><span class="o">.</span><span class="n">StatusCode</span><span class="o">.</span><span class="n">not_found</span><span class="p">,</span> <span class="s1">'not found'</span><span class="p">)</span>
- <span class="n">ALREADY_EXISTS</span> <span class="o">=</span> <span class="p">(</span><span class="n">_cygrpc</span><span class="o">.</span><span class="n">StatusCode</span><span class="o">.</span><span class="n">already_exists</span><span class="p">,</span> <span class="s1">'already exists'</span><span class="p">)</span>
- <span class="n">PERMISSION_DENIED</span> <span class="o">=</span> <span class="p">(</span><span class="n">_cygrpc</span><span class="o">.</span><span class="n">StatusCode</span><span class="o">.</span><span class="n">permission_denied</span><span class="p">,</span>
- <span class="s1">'permission denied'</span><span class="p">)</span>
- <span class="n">RESOURCE_EXHAUSTED</span> <span class="o">=</span> <span class="p">(</span><span class="n">_cygrpc</span><span class="o">.</span><span class="n">StatusCode</span><span class="o">.</span><span class="n">resource_exhausted</span><span class="p">,</span>
- <span class="s1">'resource exhausted'</span><span class="p">)</span>
- <span class="n">FAILED_PRECONDITION</span> <span class="o">=</span> <span class="p">(</span><span class="n">_cygrpc</span><span class="o">.</span><span class="n">StatusCode</span><span class="o">.</span><span class="n">failed_precondition</span><span class="p">,</span>
- <span class="s1">'failed precondition'</span><span class="p">)</span>
- <span class="n">ABORTED</span> <span class="o">=</span> <span class="p">(</span><span class="n">_cygrpc</span><span class="o">.</span><span class="n">StatusCode</span><span class="o">.</span><span class="n">aborted</span><span class="p">,</span> <span class="s1">'aborted'</span><span class="p">)</span>
- <span class="n">OUT_OF_RANGE</span> <span class="o">=</span> <span class="p">(</span><span class="n">_cygrpc</span><span class="o">.</span><span class="n">StatusCode</span><span class="o">.</span><span class="n">out_of_range</span><span class="p">,</span> <span class="s1">'out of range'</span><span class="p">)</span>
- <span class="n">UNIMPLEMENTED</span> <span class="o">=</span> <span class="p">(</span><span class="n">_cygrpc</span><span class="o">.</span><span class="n">StatusCode</span><span class="o">.</span><span class="n">unimplemented</span><span class="p">,</span> <span class="s1">'unimplemented'</span><span class="p">)</span>
- <span class="n">INTERNAL</span> <span class="o">=</span> <span class="p">(</span><span class="n">_cygrpc</span><span class="o">.</span><span class="n">StatusCode</span><span class="o">.</span><span class="n">internal</span><span class="p">,</span> <span class="s1">'internal'</span><span class="p">)</span>
- <span class="n">UNAVAILABLE</span> <span class="o">=</span> <span class="p">(</span><span class="n">_cygrpc</span><span class="o">.</span><span class="n">StatusCode</span><span class="o">.</span><span class="n">unavailable</span><span class="p">,</span> <span class="s1">'unavailable'</span><span class="p">)</span>
- <span class="n">DATA_LOSS</span> <span class="o">=</span> <span class="p">(</span><span class="n">_cygrpc</span><span class="o">.</span><span class="n">StatusCode</span><span class="o">.</span><span class="n">data_loss</span><span class="p">,</span> <span class="s1">'data loss'</span><span class="p">)</span>
- <span class="n">UNAUTHENTICATED</span> <span class="o">=</span> <span class="p">(</span><span class="n">_cygrpc</span><span class="o">.</span><span class="n">StatusCode</span><span class="o">.</span><span class="n">unauthenticated</span><span class="p">,</span> <span class="s1">'unauthenticated'</span><span class="p">)</span></div>
- <span class="c1">############################# gRPC Exceptions ################################</span>
- <div class="viewcode-block" id="RpcError"><a class="viewcode-back" href="../grpc.html#grpc.RpcError">[docs]</a><span class="k">class</span> <span class="nc">RpcError</span><span class="p">(</span><span class="ne">Exception</span><span class="p">):</span>
- <span class="sd">"""Raised by the gRPC library to indicate non-OK-status RPC termination."""</span></div>
- <span class="c1">############################## Shared Context ################################</span>
- <div class="viewcode-block" id="RpcContext"><a class="viewcode-back" href="../grpc.html#grpc.RpcContext">[docs]</a><span class="k">class</span> <span class="nc">RpcContext</span><span class="p">(</span><span class="n">six</span><span class="o">.</span><span class="n">with_metaclass</span><span class="p">(</span><span class="n">abc</span><span class="o">.</span><span class="n">ABCMeta</span><span class="p">)):</span>
- <span class="sd">"""Provides RPC-related information and action."""</span>
- <div class="viewcode-block" id="RpcContext.is_active"><a class="viewcode-back" href="../grpc.html#grpc.RpcContext.is_active">[docs]</a> <span class="nd">@abc</span><span class="o">.</span><span class="n">abstractmethod</span>
- <span class="k">def</span> <span class="nf">is_active</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
- <span class="sd">"""Describes whether the RPC is active or has terminated.</span>
- <span class="sd"> Returns:</span>
- <span class="sd"> bool:</span>
- <span class="sd"> True if RPC is active, False otherwise.</span>
- <span class="sd"> """</span>
- <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">()</span></div>
- <div class="viewcode-block" id="RpcContext.time_remaining"><a class="viewcode-back" href="../grpc.html#grpc.RpcContext.time_remaining">[docs]</a> <span class="nd">@abc</span><span class="o">.</span><span class="n">abstractmethod</span>
- <span class="k">def</span> <span class="nf">time_remaining</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
- <span class="sd">"""Describes the length of allowed time remaining for the RPC.</span>
- <span class="sd"> Returns:</span>
- <span class="sd"> A nonnegative float indicating the length of allowed time in seconds</span>
- <span class="sd"> remaining for the RPC to complete before it is considered to have timed</span>
- <span class="sd"> out, or None if no deadline was specified for the RPC.</span>
- <span class="sd"> """</span>
- <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">()</span></div>
- <div class="viewcode-block" id="RpcContext.cancel"><a class="viewcode-back" href="../grpc.html#grpc.RpcContext.cancel">[docs]</a> <span class="nd">@abc</span><span class="o">.</span><span class="n">abstractmethod</span>
- <span class="k">def</span> <span class="nf">cancel</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
- <span class="sd">"""Cancels the RPC.</span>
- <span class="sd"> Idempotent and has no effect if the RPC has already terminated.</span>
- <span class="sd"> """</span>
- <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">()</span></div>
- <div class="viewcode-block" id="RpcContext.add_callback"><a class="viewcode-back" href="../grpc.html#grpc.RpcContext.add_callback">[docs]</a> <span class="nd">@abc</span><span class="o">.</span><span class="n">abstractmethod</span>
- <span class="k">def</span> <span class="nf">add_callback</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">callback</span><span class="p">):</span>
- <span class="sd">"""Registers a callback to be called on RPC termination.</span>
- <span class="sd"> Args:</span>
- <span class="sd"> callback: A no-parameter callable to be called on RPC termination.</span>
- <span class="sd"> Returns:</span>
- <span class="sd"> bool:</span>
- <span class="sd"> True if the callback was added and will be called later; False if the</span>
- <span class="sd"> callback was not added and will not be called (because the RPC</span>
- <span class="sd"> already terminated or some other reason).</span>
- <span class="sd"> """</span>
- <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">()</span></div></div>
- <span class="c1">######################### Invocation-Side Context ############################</span>
- <div class="viewcode-block" id="Call"><a class="viewcode-back" href="../grpc.html#grpc.Call">[docs]</a><span class="k">class</span> <span class="nc">Call</span><span class="p">(</span><span class="n">six</span><span class="o">.</span><span class="n">with_metaclass</span><span class="p">(</span><span class="n">abc</span><span class="o">.</span><span class="n">ABCMeta</span><span class="p">,</span> <span class="n">RpcContext</span><span class="p">)):</span>
- <span class="sd">"""Invocation-side utility object for an RPC."""</span>
- <div class="viewcode-block" id="Call.initial_metadata"><a class="viewcode-back" href="../grpc.html#grpc.Call.initial_metadata">[docs]</a> <span class="nd">@abc</span><span class="o">.</span><span class="n">abstractmethod</span>
- <span class="k">def</span> <span class="nf">initial_metadata</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
- <span class="sd">"""Accesses the initial metadata sent by the server.</span>
- <span class="sd"> This method blocks until the value is available.</span>
- <span class="sd"> Returns:</span>
- <span class="sd"> The initial :term:`metadata`.</span>
- <span class="sd"> """</span>
- <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">()</span></div>
- <div class="viewcode-block" id="Call.trailing_metadata"><a class="viewcode-back" href="../grpc.html#grpc.Call.trailing_metadata">[docs]</a> <span class="nd">@abc</span><span class="o">.</span><span class="n">abstractmethod</span>
- <span class="k">def</span> <span class="nf">trailing_metadata</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
- <span class="sd">"""Accesses the trailing metadata sent by the server.</span>
- <span class="sd"> This method blocks until the value is available.</span>
- <span class="sd"> Returns:</span>
- <span class="sd"> The trailing :term:`metadata`.</span>
- <span class="sd"> """</span>
- <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">()</span></div>
- <div class="viewcode-block" id="Call.code"><a class="viewcode-back" href="../grpc.html#grpc.Call.code">[docs]</a> <span class="nd">@abc</span><span class="o">.</span><span class="n">abstractmethod</span>
- <span class="k">def</span> <span class="nf">code</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
- <span class="sd">"""Accesses the status code sent by the server.</span>
- <span class="sd"> This method blocks until the value is available.</span>
- <span class="sd"> Returns:</span>
- <span class="sd"> The StatusCode value for the RPC.</span>
- <span class="sd"> """</span>
- <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">()</span></div>
- <div class="viewcode-block" id="Call.details"><a class="viewcode-back" href="../grpc.html#grpc.Call.details">[docs]</a> <span class="nd">@abc</span><span class="o">.</span><span class="n">abstractmethod</span>
- <span class="k">def</span> <span class="nf">details</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
- <span class="sd">"""Accesses the details sent by the server.</span>
- <span class="sd"> This method blocks until the value is available.</span>
- <span class="sd"> Returns:</span>
- <span class="sd"> The details string of the RPC.</span>
- <span class="sd"> """</span>
- <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">()</span></div></div>
- <span class="c1">############## Invocation-Side Interceptor Interfaces & Classes ##############</span>
- <div class="viewcode-block" id="ClientCallDetails"><a class="viewcode-back" href="../grpc.html#grpc.ClientCallDetails">[docs]</a><span class="k">class</span> <span class="nc">ClientCallDetails</span><span class="p">(</span><span class="n">six</span><span class="o">.</span><span class="n">with_metaclass</span><span class="p">(</span><span class="n">abc</span><span class="o">.</span><span class="n">ABCMeta</span><span class="p">)):</span>
- <span class="sd">"""Describes an RPC to be invoked.</span>
- <span class="sd"> This is an EXPERIMENTAL API.</span>
- <span class="sd"> Attributes:</span>
- <span class="sd"> method: The method name of the RPC.</span>
- <span class="sd"> timeout: An optional duration of time in seconds to allow for the RPC.</span>
- <span class="sd"> metadata: Optional :term:`metadata` to be transmitted to</span>
- <span class="sd"> the service-side of the RPC.</span>
- <span class="sd"> credentials: An optional CallCredentials for the RPC.</span>
- <span class="sd"> """</span></div>
- <div class="viewcode-block" id="UnaryUnaryClientInterceptor"><a class="viewcode-back" href="../grpc.html#grpc.UnaryUnaryClientInterceptor">[docs]</a><span class="k">class</span> <span class="nc">UnaryUnaryClientInterceptor</span><span class="p">(</span><span class="n">six</span><span class="o">.</span><span class="n">with_metaclass</span><span class="p">(</span><span class="n">abc</span><span class="o">.</span><span class="n">ABCMeta</span><span class="p">)):</span>
- <span class="sd">"""Affords intercepting unary-unary invocations.</span>
- <span class="sd"> This is an EXPERIMENTAL API.</span>
- <span class="sd"> """</span>
- <div class="viewcode-block" id="UnaryUnaryClientInterceptor.intercept_unary_unary"><a class="viewcode-back" href="../grpc.html#grpc.UnaryUnaryClientInterceptor.intercept_unary_unary">[docs]</a> <span class="nd">@abc</span><span class="o">.</span><span class="n">abstractmethod</span>
- <span class="k">def</span> <span class="nf">intercept_unary_unary</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">continuation</span><span class="p">,</span> <span class="n">client_call_details</span><span class="p">,</span> <span class="n">request</span><span class="p">):</span>
- <span class="sd">"""Intercepts a unary-unary invocation asynchronously.</span>
- <span class="sd"> Args:</span>
- <span class="sd"> continuation: A function that proceeds with the invocation by</span>
- <span class="sd"> executing the next interceptor in chain or invoking the</span>
- <span class="sd"> actual RPC on the underlying Channel. It is the interceptor's</span>
- <span class="sd"> responsibility to call it if it decides to move the RPC forward.</span>
- <span class="sd"> The interceptor can use</span>
- <span class="sd"> `response_future = continuation(client_call_details, request)`</span>
- <span class="sd"> to continue with the RPC. `continuation` returns an object that is</span>
- <span class="sd"> both a Call for the RPC and a Future. In the event of RPC</span>
- <span class="sd"> completion, the return Call-Future's result value will be</span>
- <span class="sd"> the response message of the RPC. Should the event terminate</span>
- <span class="sd"> with non-OK status, the returned Call-Future's exception value</span>
- <span class="sd"> will be an RpcError.</span>
- <span class="sd"> client_call_details: A ClientCallDetails object describing the</span>
- <span class="sd"> outgoing RPC.</span>
- <span class="sd"> request: The request value for the RPC.</span>
- <span class="sd"> Returns:</span>
- <span class="sd"> An object that is both a Call for the RPC and a Future.</span>
- <span class="sd"> In the event of RPC completion, the return Call-Future's</span>
- <span class="sd"> result value will be the response message of the RPC.</span>
- <span class="sd"> Should the event terminate with non-OK status, the returned</span>
- <span class="sd"> Call-Future's exception value will be an RpcError.</span>
- <span class="sd"> """</span>
- <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">()</span></div></div>
- <div class="viewcode-block" id="UnaryStreamClientInterceptor"><a class="viewcode-back" href="../grpc.html#grpc.UnaryStreamClientInterceptor">[docs]</a><span class="k">class</span> <span class="nc">UnaryStreamClientInterceptor</span><span class="p">(</span><span class="n">six</span><span class="o">.</span><span class="n">with_metaclass</span><span class="p">(</span><span class="n">abc</span><span class="o">.</span><span class="n">ABCMeta</span><span class="p">)):</span>
- <span class="sd">"""Affords intercepting unary-stream invocations.</span>
- <span class="sd"> This is an EXPERIMENTAL API.</span>
- <span class="sd"> """</span>
- <div class="viewcode-block" id="UnaryStreamClientInterceptor.intercept_unary_stream"><a class="viewcode-back" href="../grpc.html#grpc.UnaryStreamClientInterceptor.intercept_unary_stream">[docs]</a> <span class="nd">@abc</span><span class="o">.</span><span class="n">abstractmethod</span>
- <span class="k">def</span> <span class="nf">intercept_unary_stream</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">continuation</span><span class="p">,</span> <span class="n">client_call_details</span><span class="p">,</span>
- <span class="n">request</span><span class="p">):</span>
- <span class="sd">"""Intercepts a unary-stream invocation.</span>
- <span class="sd"> Args:</span>
- <span class="sd"> continuation: A function that proceeds with the invocation by</span>
- <span class="sd"> executing the next interceptor in chain or invoking the</span>
- <span class="sd"> actual RPC on the underlying Channel. It is the interceptor's</span>
- <span class="sd"> responsibility to call it if it decides to move the RPC forward.</span>
- <span class="sd"> The interceptor can use</span>
- <span class="sd"> `response_iterator = continuation(client_call_details, request)`</span>
- <span class="sd"> to continue with the RPC. `continuation` returns an object that is</span>
- <span class="sd"> both a Call for the RPC and an iterator for response values.</span>
- <span class="sd"> Drawing response values from the returned Call-iterator may</span>
- <span class="sd"> raise RpcError indicating termination of the RPC with non-OK</span>
- <span class="sd"> status.</span>
- <span class="sd"> client_call_details: A ClientCallDetails object describing the</span>
- <span class="sd"> outgoing RPC.</span>
- <span class="sd"> request: The request value for the RPC.</span>
- <span class="sd"> Returns:</span>
- <span class="sd"> An object that is both a Call for the RPC and an iterator of</span>
- <span class="sd"> response values. Drawing response values from the returned</span>
- <span class="sd"> Call-iterator may raise RpcError indicating termination of</span>
- <span class="sd"> the RPC with non-OK status.</span>
- <span class="sd"> """</span>
- <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">()</span></div></div>
- <div class="viewcode-block" id="StreamUnaryClientInterceptor"><a class="viewcode-back" href="../grpc.html#grpc.StreamUnaryClientInterceptor">[docs]</a><span class="k">class</span> <span class="nc">StreamUnaryClientInterceptor</span><span class="p">(</span><span class="n">six</span><span class="o">.</span><span class="n">with_metaclass</span><span class="p">(</span><span class="n">abc</span><span class="o">.</span><span class="n">ABCMeta</span><span class="p">)):</span>
- <span class="sd">"""Affords intercepting stream-unary invocations.</span>
- <span class="sd"> This is an EXPERIMENTAL API.</span>
- <span class="sd"> """</span>
- <div class="viewcode-block" id="StreamUnaryClientInterceptor.intercept_stream_unary"><a class="viewcode-back" href="../grpc.html#grpc.StreamUnaryClientInterceptor.intercept_stream_unary">[docs]</a> <span class="nd">@abc</span><span class="o">.</span><span class="n">abstractmethod</span>
- <span class="k">def</span> <span class="nf">intercept_stream_unary</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">continuation</span><span class="p">,</span> <span class="n">client_call_details</span><span class="p">,</span>
- <span class="n">request_iterator</span><span class="p">):</span>
- <span class="sd">"""Intercepts a stream-unary invocation asynchronously.</span>
- <span class="sd"> Args:</span>
- <span class="sd"> continuation: A function that proceeds with the invocation by</span>
- <span class="sd"> executing the next interceptor in chain or invoking the</span>
- <span class="sd"> actual RPC on the underlying Channel. It is the interceptor's</span>
- <span class="sd"> responsibility to call it if it decides to move the RPC forward.</span>
- <span class="sd"> The interceptor can use</span>
- <span class="sd"> `response_future = continuation(client_call_details,</span>
- <span class="sd"> request_iterator)`</span>
- <span class="sd"> to continue with the RPC. `continuation` returns an object that is</span>
- <span class="sd"> both a Call for the RPC and a Future. In the event of RPC completion,</span>
- <span class="sd"> the return Call-Future's result value will be the response message</span>
- <span class="sd"> of the RPC. Should the event terminate with non-OK status, the</span>
- <span class="sd"> returned Call-Future's exception value will be an RpcError.</span>
- <span class="sd"> client_call_details: A ClientCallDetails object describing the</span>
- <span class="sd"> outgoing RPC.</span>
- <span class="sd"> request_iterator: An iterator that yields request values for the RPC.</span>
- <span class="sd"> Returns:</span>
- <span class="sd"> An object that is both a Call for the RPC and a Future.</span>
- <span class="sd"> In the event of RPC completion, the return Call-Future's</span>
- <span class="sd"> result value will be the response message of the RPC.</span>
- <span class="sd"> Should the event terminate with non-OK status, the returned</span>
- <span class="sd"> Call-Future's exception value will be an RpcError.</span>
- <span class="sd"> """</span>
- <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">()</span></div></div>
- <div class="viewcode-block" id="StreamStreamClientInterceptor"><a class="viewcode-back" href="../grpc.html#grpc.StreamStreamClientInterceptor">[docs]</a><span class="k">class</span> <span class="nc">StreamStreamClientInterceptor</span><span class="p">(</span><span class="n">six</span><span class="o">.</span><span class="n">with_metaclass</span><span class="p">(</span><span class="n">abc</span><span class="o">.</span><span class="n">ABCMeta</span><span class="p">)):</span>
- <span class="sd">"""Affords intercepting stream-stream invocations.</span>
- <span class="sd"> This is an EXPERIMENTAL API.</span>
- <span class="sd"> """</span>
- <div class="viewcode-block" id="StreamStreamClientInterceptor.intercept_stream_stream"><a class="viewcode-back" href="../grpc.html#grpc.StreamStreamClientInterceptor.intercept_stream_stream">[docs]</a> <span class="nd">@abc</span><span class="o">.</span><span class="n">abstractmethod</span>
- <span class="k">def</span> <span class="nf">intercept_stream_stream</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">continuation</span><span class="p">,</span> <span class="n">client_call_details</span><span class="p">,</span>
- <span class="n">request_iterator</span><span class="p">):</span>
- <span class="sd">"""Intercepts a stream-stream invocation.</span>
- <span class="sd"> continuation: A function that proceeds with the invocation by</span>
- <span class="sd"> executing the next interceptor in chain or invoking the</span>
- <span class="sd"> actual RPC on the underlying Channel. It is the interceptor's</span>
- <span class="sd"> responsibility to call it if it decides to move the RPC forward.</span>
- <span class="sd"> The interceptor can use</span>
- <span class="sd"> `response_iterator = continuation(client_call_details,</span>
- <span class="sd"> request_iterator)`</span>
- <span class="sd"> to continue with the RPC. `continuation` returns an object that is</span>
- <span class="sd"> both a Call for the RPC and an iterator for response values.</span>
- <span class="sd"> Drawing response values from the returned Call-iterator may</span>
- <span class="sd"> raise RpcError indicating termination of the RPC with non-OK</span>
- <span class="sd"> status.</span>
- <span class="sd"> client_call_details: A ClientCallDetails object describing the</span>
- <span class="sd"> outgoing RPC.</span>
- <span class="sd"> request_iterator: An iterator that yields request values for the RPC.</span>
- <span class="sd"> Returns:</span>
- <span class="sd"> An object that is both a Call for the RPC and an iterator of</span>
- <span class="sd"> response values. Drawing response values from the returned</span>
- <span class="sd"> Call-iterator may raise RpcError indicating termination of</span>
- <span class="sd"> the RPC with non-OK status.</span>
- <span class="sd"> """</span>
- <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">()</span></div></div>
- <span class="c1">############ Authentication & Authorization Interfaces & Classes #############</span>
- <div class="viewcode-block" id="ChannelCredentials"><a class="viewcode-back" href="../grpc.html#grpc.ChannelCredentials">[docs]</a><span class="k">class</span> <span class="nc">ChannelCredentials</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
- <span class="sd">"""An encapsulation of the data required to create a secure Channel.</span>
- <span class="sd"> This class has no supported interface - it exists to define the type of its</span>
- <span class="sd"> instances and its instances exist to be passed to other functions. For</span>
- <span class="sd"> example, ssl_channel_credentials returns an instance of this class and</span>
- <span class="sd"> secure_channel requires an instance of this class.</span>
- <span class="sd"> """</span>
- <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">credentials</span><span class="p">):</span>
- <span class="bp">self</span><span class="o">.</span><span class="n">_credentials</span> <span class="o">=</span> <span class="n">credentials</span></div>
- <div class="viewcode-block" id="CallCredentials"><a class="viewcode-back" href="../grpc.html#grpc.CallCredentials">[docs]</a><span class="k">class</span> <span class="nc">CallCredentials</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
- <span class="sd">"""An encapsulation of the data required to assert an identity over a call.</span>
- <span class="sd"> A CallCredentials may be composed with ChannelCredentials to always assert</span>
- <span class="sd"> identity for every call over that Channel.</span>
- <span class="sd"> This class has no supported interface - it exists to define the type of its</span>
- <span class="sd"> instances and its instances exist to be passed to other functions.</span>
- <span class="sd"> """</span>
- <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">credentials</span><span class="p">):</span>
- <span class="bp">self</span><span class="o">.</span><span class="n">_credentials</span> <span class="o">=</span> <span class="n">credentials</span></div>
- <div class="viewcode-block" id="AuthMetadataContext"><a class="viewcode-back" href="../grpc.html#grpc.AuthMetadataContext">[docs]</a><span class="k">class</span> <span class="nc">AuthMetadataContext</span><span class="p">(</span><span class="n">six</span><span class="o">.</span><span class="n">with_metaclass</span><span class="p">(</span><span class="n">abc</span><span class="o">.</span><span class="n">ABCMeta</span><span class="p">)):</span>
- <span class="sd">"""Provides information to call credentials metadata plugins.</span>
- <span class="sd"> Attributes:</span>
- <span class="sd"> service_url: A string URL of the service being called into.</span>
- <span class="sd"> method_name: A string of the fully qualified method name being called.</span>
- <span class="sd"> """</span></div>
- <div class="viewcode-block" id="AuthMetadataPluginCallback"><a class="viewcode-back" href="../grpc.html#grpc.AuthMetadataPluginCallback">[docs]</a><span class="k">class</span> <span class="nc">AuthMetadataPluginCallback</span><span class="p">(</span><span class="n">six</span><span class="o">.</span><span class="n">with_metaclass</span><span class="p">(</span><span class="n">abc</span><span class="o">.</span><span class="n">ABCMeta</span><span class="p">)):</span>
- <span class="sd">"""Callback object received by a metadata plugin."""</span>
- <div class="viewcode-block" id="AuthMetadataPluginCallback.__call__"><a class="viewcode-back" href="../grpc.html#grpc.AuthMetadataPluginCallback.__call__">[docs]</a> <span class="k">def</span> <span class="nf">__call__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">metadata</span><span class="p">,</span> <span class="n">error</span><span class="p">):</span>
- <span class="sd">"""Passes to the gRPC runtime authentication metadata for an RPC.</span>
- <span class="sd"> Args:</span>
- <span class="sd"> metadata: The :term:`metadata` used to construct the CallCredentials.</span>
- <span class="sd"> error: An Exception to indicate error or None to indicate success.</span>
- <span class="sd"> """</span>
- <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">()</span></div></div>
- <div class="viewcode-block" id="AuthMetadataPlugin"><a class="viewcode-back" href="../grpc.html#grpc.AuthMetadataPlugin">[docs]</a><span class="k">class</span> <span class="nc">AuthMetadataPlugin</span><span class="p">(</span><span class="n">six</span><span class="o">.</span><span class="n">with_metaclass</span><span class="p">(</span><span class="n">abc</span><span class="o">.</span><span class="n">ABCMeta</span><span class="p">)):</span>
- <span class="sd">"""A specification for custom authentication."""</span>
- <div class="viewcode-block" id="AuthMetadataPlugin.__call__"><a class="viewcode-back" href="../grpc.html#grpc.AuthMetadataPlugin.__call__">[docs]</a> <span class="k">def</span> <span class="nf">__call__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">context</span><span class="p">,</span> <span class="n">callback</span><span class="p">):</span>
- <span class="sd">"""Implements authentication by passing metadata to a callback.</span>
- <span class="sd"> Implementations of this method must not block.</span>
- <span class="sd"> Args:</span>
- <span class="sd"> context: An AuthMetadataContext providing information on the RPC that</span>
- <span class="sd"> the plugin is being called to authenticate.</span>
- <span class="sd"> callback: An AuthMetadataPluginCallback to be invoked either</span>
- <span class="sd"> synchronously or asynchronously.</span>
- <span class="sd"> """</span>
- <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">()</span></div></div>
- <div class="viewcode-block" id="ServerCredentials"><a class="viewcode-back" href="../grpc.html#grpc.ServerCredentials">[docs]</a><span class="k">class</span> <span class="nc">ServerCredentials</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
- <span class="sd">"""An encapsulation of the data required to open a secure port on a Server.</span>
- <span class="sd"> This class has no supported interface - it exists to define the type of its</span>
- <span class="sd"> instances and its instances exist to be passed to other functions.</span>
- <span class="sd"> """</span>
- <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">credentials</span><span class="p">):</span>
- <span class="bp">self</span><span class="o">.</span><span class="n">_credentials</span> <span class="o">=</span> <span class="n">credentials</span></div>
- <div class="viewcode-block" id="ServerCertificateConfiguration"><a class="viewcode-back" href="../grpc.html#grpc.ServerCertificateConfiguration">[docs]</a><span class="k">class</span> <span class="nc">ServerCertificateConfiguration</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
- <span class="sd">"""A certificate configuration for use with an SSL-enabled Server.</span>
- <span class="sd"> Instances of this class can be returned in the certificate configuration</span>
- <span class="sd"> fetching callback.</span>
- <span class="sd"> This class has no supported interface -- it exists to define the</span>
- <span class="sd"> type of its instances and its instances exist to be passed to</span>
- <span class="sd"> other functions.</span>
- <span class="sd"> """</span>
- <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">certificate_configuration</span><span class="p">):</span>
- <span class="bp">self</span><span class="o">.</span><span class="n">_certificate_configuration</span> <span class="o">=</span> <span class="n">certificate_configuration</span></div>
- <span class="c1">######################## Multi-Callable Interfaces ###########################</span>
- <div class="viewcode-block" id="UnaryUnaryMultiCallable"><a class="viewcode-back" href="../grpc.html#grpc.UnaryUnaryMultiCallable">[docs]</a><span class="k">class</span> <span class="nc">UnaryUnaryMultiCallable</span><span class="p">(</span><span class="n">six</span><span class="o">.</span><span class="n">with_metaclass</span><span class="p">(</span><span class="n">abc</span><span class="o">.</span><span class="n">ABCMeta</span><span class="p">)):</span>
- <span class="sd">"""Affords invoking a unary-unary RPC from client-side."""</span>
- <div class="viewcode-block" id="UnaryUnaryMultiCallable.__call__"><a class="viewcode-back" href="../grpc.html#grpc.UnaryUnaryMultiCallable.__call__">[docs]</a> <span class="nd">@abc</span><span class="o">.</span><span class="n">abstractmethod</span>
- <span class="k">def</span> <span class="nf">__call__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">request</span><span class="p">,</span> <span class="n">timeout</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">metadata</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">credentials</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
- <span class="sd">"""Synchronously invokes the underlying RPC.</span>
- <span class="sd"> Args:</span>
- <span class="sd"> request: The request value for the RPC.</span>
- <span class="sd"> timeout: An optional duration of time in seconds to allow for the RPC.</span>
- <span class="sd"> metadata: Optional :term:`metadata` to be transmitted to the</span>
- <span class="sd"> service-side of the RPC.</span>
- <span class="sd"> credentials: An optional CallCredentials for the RPC.</span>
- <span class="sd"> Returns:</span>
- <span class="sd"> The response value for the RPC.</span>
- <span class="sd"> Raises:</span>
- <span class="sd"> RpcError: Indicating that the RPC terminated with non-OK status. The</span>
- <span class="sd"> raised RpcError will also be a Call for the RPC affording the RPC's</span>
- <span class="sd"> metadata, status code, and details.</span>
- <span class="sd"> """</span>
- <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">()</span></div>
- <div class="viewcode-block" id="UnaryUnaryMultiCallable.with_call"><a class="viewcode-back" href="../grpc.html#grpc.UnaryUnaryMultiCallable.with_call">[docs]</a> <span class="nd">@abc</span><span class="o">.</span><span class="n">abstractmethod</span>
- <span class="k">def</span> <span class="nf">with_call</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">request</span><span class="p">,</span> <span class="n">timeout</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">metadata</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">credentials</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
- <span class="sd">"""Synchronously invokes the underlying RPC.</span>
- <span class="sd"> Args:</span>
- <span class="sd"> request: The request value for the RPC.</span>
- <span class="sd"> timeout: An optional durating of time in seconds to allow for the RPC.</span>
- <span class="sd"> metadata: Optional :term:`metadata` to be transmitted to the</span>
- <span class="sd"> service-side of the RPC.</span>
- <span class="sd"> credentials: An optional CallCredentials for the RPC.</span>
- <span class="sd"> Returns:</span>
- <span class="sd"> The response value for the RPC and a Call value for the RPC.</span>
- <span class="sd"> Raises:</span>
- <span class="sd"> RpcError: Indicating that the RPC terminated with non-OK status. The</span>
- <span class="sd"> raised RpcError will also be a Call for the RPC affording the RPC's</span>
- <span class="sd"> metadata, status code, and details.</span>
- <span class="sd"> """</span>
- <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">()</span></div>
- <div class="viewcode-block" id="UnaryUnaryMultiCallable.future"><a class="viewcode-back" href="../grpc.html#grpc.UnaryUnaryMultiCallable.future">[docs]</a> <span class="nd">@abc</span><span class="o">.</span><span class="n">abstractmethod</span>
- <span class="k">def</span> <span class="nf">future</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">request</span><span class="p">,</span> <span class="n">timeout</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">metadata</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">credentials</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
- <span class="sd">"""Asynchronously invokes the underlying RPC.</span>
- <span class="sd"> Args:</span>
- <span class="sd"> request: The request value for the RPC.</span>
- <span class="sd"> timeout: An optional duration of time in seconds to allow for the RPC.</span>
- <span class="sd"> metadata: Optional :term:`metadata` to be transmitted to the</span>
- <span class="sd"> service-side of the RPC.</span>
- <span class="sd"> credentials: An optional CallCredentials for the RPC.</span>
- <span class="sd"> Returns:</span>
- <span class="sd"> An object that is both a Call for the RPC and a Future. In the event of</span>
- <span class="sd"> RPC completion, the return Call-Future's result value will be the</span>
- <span class="sd"> response message of the RPC. Should the event terminate with non-OK</span>
- <span class="sd"> status, the returned Call-Future's exception value will be an RpcError.</span>
- <span class="sd"> """</span>
- <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">()</span></div></div>
- <div class="viewcode-block" id="UnaryStreamMultiCallable"><a class="viewcode-back" href="../grpc.html#grpc.UnaryStreamMultiCallable">[docs]</a><span class="k">class</span> <span class="nc">UnaryStreamMultiCallable</span><span class="p">(</span><span class="n">six</span><span class="o">.</span><span class="n">with_metaclass</span><span class="p">(</span><span class="n">abc</span><span class="o">.</span><span class="n">ABCMeta</span><span class="p">)):</span>
- <span class="sd">"""Affords invoking a unary-stream RPC from client-side."""</span>
- <div class="viewcode-block" id="UnaryStreamMultiCallable.__call__"><a class="viewcode-back" href="../grpc.html#grpc.UnaryStreamMultiCallable.__call__">[docs]</a> <span class="nd">@abc</span><span class="o">.</span><span class="n">abstractmethod</span>
- <span class="k">def</span> <span class="nf">__call__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">request</span><span class="p">,</span> <span class="n">timeout</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">metadata</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">credentials</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
- <span class="sd">"""Invokes the underlying RPC.</span>
- <span class="sd"> Args:</span>
- <span class="sd"> request: The request value for the RPC.</span>
- <span class="sd"> timeout: An optional duration of time in seconds to allow for the RPC.</span>
- <span class="sd"> If None, the timeout is considered infinite.</span>
- <span class="sd"> metadata: An optional :term:`metadata` to be transmitted to the</span>
- <span class="sd"> service-side of the RPC.</span>
- <span class="sd"> credentials: An optional CallCredentials for the RPC.</span>
- <span class="sd"> Returns:</span>
- <span class="sd"> An object that is both a Call for the RPC and an iterator of response</span>
- <span class="sd"> values. Drawing response values from the returned Call-iterator may</span>
- <span class="sd"> raise RpcError indicating termination of the RPC with non-OK status.</span>
- <span class="sd"> """</span>
- <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">()</span></div></div>
- <div class="viewcode-block" id="StreamUnaryMultiCallable"><a class="viewcode-back" href="../grpc.html#grpc.StreamUnaryMultiCallable">[docs]</a><span class="k">class</span> <span class="nc">StreamUnaryMultiCallable</span><span class="p">(</span><span class="n">six</span><span class="o">.</span><span class="n">with_metaclass</span><span class="p">(</span><span class="n">abc</span><span class="o">.</span><span class="n">ABCMeta</span><span class="p">)):</span>
- <span class="sd">"""Affords invoking a stream-unary RPC from client-side."""</span>
- <div class="viewcode-block" id="StreamUnaryMultiCallable.__call__"><a class="viewcode-back" href="../grpc.html#grpc.StreamUnaryMultiCallable.__call__">[docs]</a> <span class="nd">@abc</span><span class="o">.</span><span class="n">abstractmethod</span>
- <span class="k">def</span> <span class="nf">__call__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span>
- <span class="n">request_iterator</span><span class="p">,</span>
- <span class="n">timeout</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
- <span class="n">metadata</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
- <span class="n">credentials</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
- <span class="sd">"""Synchronously invokes the underlying RPC.</span>
- <span class="sd"> Args:</span>
- <span class="sd"> request_iterator: An iterator that yields request values for the RPC.</span>
- <span class="sd"> timeout: An optional duration of time in seconds to allow for the RPC.</span>
- <span class="sd"> If None, the timeout is considered infinite.</span>
- <span class="sd"> metadata: Optional :term:`metadata` to be transmitted to the</span>
- <span class="sd"> service-side of the RPC.</span>
- <span class="sd"> credentials: An optional CallCredentials for the RPC.</span>
- <span class="sd"> Returns:</span>
- <span class="sd"> The response value for the RPC.</span>
- <span class="sd"> Raises:</span>
- <span class="sd"> RpcError: Indicating that the RPC terminated with non-OK status. The</span>
- <span class="sd"> raised RpcError will also implement grpc.Call, affording methods</span>
- <span class="sd"> such as metadata, code, and details.</span>
- <span class="sd"> """</span>
- <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">()</span></div>
- <div class="viewcode-block" id="StreamUnaryMultiCallable.with_call"><a class="viewcode-back" href="../grpc.html#grpc.StreamUnaryMultiCallable.with_call">[docs]</a> <span class="nd">@abc</span><span class="o">.</span><span class="n">abstractmethod</span>
- <span class="k">def</span> <span class="nf">with_call</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span>
- <span class="n">request_iterator</span><span class="p">,</span>
- <span class="n">timeout</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
- <span class="n">metadata</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
- <span class="n">credentials</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
- <span class="sd">"""Synchronously invokes the underlying RPC on the client.</span>
- <span class="sd"> Args:</span>
- <span class="sd"> request_iterator: An iterator that yields request values for the RPC.</span>
- <span class="sd"> timeout: An optional duration of time in seconds to allow for the RPC.</span>
- <span class="sd"> If None, the timeout is considered infinite.</span>
- <span class="sd"> metadata: Optional :term:`metadata` to be transmitted to the</span>
- <span class="sd"> service-side of the RPC.</span>
- <span class="sd"> credentials: An optional CallCredentials for the RPC.</span>
- <span class="sd"> Returns:</span>
- <span class="sd"> The response value for the RPC and a Call object for the RPC.</span>
- <span class="sd"> Raises:</span>
- <span class="sd"> RpcError: Indicating that the RPC terminated with non-OK status. The</span>
- <span class="sd"> raised RpcError will also be a Call for the RPC affording the RPC's</span>
- <span class="sd"> metadata, status code, and details.</span>
- <span class="sd"> """</span>
- <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">()</span></div>
- <div class="viewcode-block" id="StreamUnaryMultiCallable.future"><a class="viewcode-back" href="../grpc.html#grpc.StreamUnaryMultiCallable.future">[docs]</a> <span class="nd">@abc</span><span class="o">.</span><span class="n">abstractmethod</span>
- <span class="k">def</span> <span class="nf">future</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span>
- <span class="n">request_iterator</span><span class="p">,</span>
- <span class="n">timeout</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
- <span class="n">metadata</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
- <span class="n">credentials</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
- <span class="sd">"""Asynchronously invokes the underlying RPC on the client.</span>
- <span class="sd"> Args:</span>
- <span class="sd"> request_iterator: An iterator that yields request values for the RPC.</span>
- <span class="sd"> timeout: An optional duration of time in seconds to allow for the RPC.</span>
- <span class="sd"> If None, the timeout is considered infinite.</span>
- <span class="sd"> metadata: Optional :term:`metadata` to be transmitted to the</span>
- <span class="sd"> service-side of the RPC.</span>
- <span class="sd"> credentials: An optional CallCredentials for the RPC.</span>
- <span class="sd"> Returns:</span>
- <span class="sd"> An object that is both a Call for the RPC and a Future. In the event of</span>
- <span class="sd"> RPC completion, the return Call-Future's result value will be the</span>
- <span class="sd"> response message of the RPC. Should the event terminate with non-OK</span>
- <span class="sd"> status, the returned Call-Future's exception value will be an RpcError.</span>
- <span class="sd"> """</span>
- <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">()</span></div></div>
- <div class="viewcode-block" id="StreamStreamMultiCallable"><a class="viewcode-back" href="../grpc.html#grpc.StreamStreamMultiCallable">[docs]</a><span class="k">class</span> <span class="nc">StreamStreamMultiCallable</span><span class="p">(</span><span class="n">six</span><span class="o">.</span><span class="n">with_metaclass</span><span class="p">(</span><span class="n">abc</span><span class="o">.</span><span class="n">ABCMeta</span><span class="p">)):</span>
- <span class="sd">"""Affords invoking a stream-stream RPC on client-side."""</span>
- <div class="viewcode-block" id="StreamStreamMultiCallable.__call__"><a class="viewcode-back" href="../grpc.html#grpc.StreamStreamMultiCallable.__call__">[docs]</a> <span class="nd">@abc</span><span class="o">.</span><span class="n">abstractmethod</span>
- <span class="k">def</span> <span class="nf">__call__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span>
- <span class="n">request_iterator</span><span class="p">,</span>
- <span class="n">timeout</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
- <span class="n">metadata</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
- <span class="n">credentials</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
- <span class="sd">"""Invokes the underlying RPC on the client.</span>
- <span class="sd"> Args:</span>
- <span class="sd"> request_iterator: An iterator that yields request values for the RPC.</span>
- <span class="sd"> timeout: An optional duration of time in seconds to allow for the RPC.</span>
- <span class="sd"> if not specified the timeout is considered infinite.</span>
- <span class="sd"> metadata: Optional :term:`metadata` to be transmitted to the</span>
- <span class="sd"> service-side of the RPC.</span>
- <span class="sd"> credentials: An optional CallCredentials for the RPC.</span>
- <span class="sd"> Returns:</span>
- <span class="sd"> An object that is both a Call for the RPC and an iterator of response</span>
- <span class="sd"> values. Drawing response values from the returned Call-iterator may</span>
- <span class="sd"> raise RpcError indicating termination of the RPC with non-OK status.</span>
- <span class="sd"> """</span>
- <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">()</span></div></div>
- <span class="c1">############################# Channel Interface ##############################</span>
- <div class="viewcode-block" id="Channel"><a class="viewcode-back" href="../grpc.html#grpc.Channel">[docs]</a><span class="k">class</span> <span class="nc">Channel</span><span class="p">(</span><span class="n">six</span><span class="o">.</span><span class="n">with_metaclass</span><span class="p">(</span><span class="n">abc</span><span class="o">.</span><span class="n">ABCMeta</span><span class="p">)):</span>
- <span class="sd">"""Affords RPC invocation via generic methods on client-side."""</span>
- <div class="viewcode-block" id="Channel.subscribe"><a class="viewcode-back" href="../grpc.html#grpc.Channel.subscribe">[docs]</a> <span class="nd">@abc</span><span class="o">.</span><span class="n">abstractmethod</span>
- <span class="k">def</span> <span class="nf">subscribe</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">callback</span><span class="p">,</span> <span class="n">try_to_connect</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
- <span class="sd">"""Subscribe to this Channel's connectivity state machine.</span>
- <span class="sd"> A Channel may be in any of the states described by ChannelConnectivity.</span>
- <span class="sd"> This method allows application to monitor the state transitions.</span>
- <span class="sd"> The typical use case is to debug or gain better visibility into gRPC</span>
- <span class="sd"> runtime's state.</span>
- <span class="sd"> Args:</span>
- <span class="sd"> callback: A callable to be invoked with ChannelConnectivity argument.</span>
- <span class="sd"> ChannelConnectivity describes current state of the channel.</span>
- <span class="sd"> The callable will be invoked immediately upon subscription and again for</span>
- <span class="sd"> every change to ChannelConnectivity until it is unsubscribed or this</span>
- <span class="sd"> Channel object goes out of scope.</span>
- <span class="sd"> try_to_connect: A boolean indicating whether or not this Channel should</span>
- <span class="sd"> attempt to connect immediately. If set to False, gRPC runtime decides</span>
- <span class="sd"> when to connect.</span>
- <span class="sd"> """</span>
- <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">()</span></div>
- <div class="viewcode-block" id="Channel.unsubscribe"><a class="viewcode-back" href="../grpc.html#grpc.Channel.unsubscribe">[docs]</a> <span class="nd">@abc</span><span class="o">.</span><span class="n">abstractmethod</span>
- <span class="k">def</span> <span class="nf">unsubscribe</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">callback</span><span class="p">):</span>
- <span class="sd">"""Unsubscribes a subscribed callback from this Channel's connectivity.</span>
- <span class="sd"> Args:</span>
- <span class="sd"> callback: A callable previously registered with this Channel from having</span>
- <span class="sd"> been passed to its "subscribe" method.</span>
- <span class="sd"> """</span>
- <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">()</span></div>
- <div class="viewcode-block" id="Channel.unary_unary"><a class="viewcode-back" href="../grpc.html#grpc.Channel.unary_unary">[docs]</a> <span class="nd">@abc</span><span class="o">.</span><span class="n">abstractmethod</span>
- <span class="k">def</span> <span class="nf">unary_unary</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span>
- <span class="n">method</span><span class="p">,</span>
- <span class="n">request_serializer</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
- <span class="n">response_deserializer</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
- <span class="sd">"""Creates a UnaryUnaryMultiCallable for a unary-unary method.</span>
- <span class="sd"> Args:</span>
- <span class="sd"> method: The name of the RPC method.</span>
- <span class="sd"> request_serializer: Optional behaviour for serializing the request</span>
- <span class="sd"> message. Request goes unserialized in case None is passed.</span>
- <span class="sd"> response_deserializer: Optional behaviour for deserializing the response</span>
- <span class="sd"> message. Response goes undeserialized in case None is passed.</span>
- <span class="sd"> Returns:</span>
- <span class="sd"> A UnaryUnaryMultiCallable value for the named unary-unary method.</span>
- <span class="sd"> """</span>
- <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">()</span></div>
- <div class="viewcode-block" id="Channel.unary_stream"><a class="viewcode-back" href="../grpc.html#grpc.Channel.unary_stream">[docs]</a> <span class="nd">@abc</span><span class="o">.</span><span class="n">abstractmethod</span>
- <span class="k">def</span> <span class="nf">unary_stream</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span>
- <span class="n">method</span><span class="p">,</span>
- <span class="n">request_serializer</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
- <span class="n">response_deserializer</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
- <span class="sd">"""Creates a UnaryStreamMultiCallable for a unary-stream method.</span>
- <span class="sd"> Args:</span>
- <span class="sd"> method: The name of the RPC method.</span>
- <span class="sd"> request_serializer: Optional behaviour for serializing the request</span>
- <span class="sd"> message. Request goes unserialized in case None is passed.</span>
- <span class="sd"> response_deserializer: Optional behaviour for deserializing the response</span>
- <span class="sd"> message. Response goes undeserialized in case None is passed.</span>
- <span class="sd"> Returns:</span>
- <span class="sd"> A UnaryStreamMultiCallable value for the name unary-stream method.</span>
- <span class="sd"> """</span>
- <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">()</span></div>
- <div class="viewcode-block" id="Channel.stream_unary"><a class="viewcode-back" href="../grpc.html#grpc.Channel.stream_unary">[docs]</a> <span class="nd">@abc</span><span class="o">.</span><span class="n">abstractmethod</span>
- <span class="k">def</span> <span class="nf">stream_unary</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span>
- <span class="n">method</span><span class="p">,</span>
- <span class="n">request_serializer</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
- <span class="n">response_deserializer</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
- <span class="sd">"""Creates a StreamUnaryMultiCallable for a stream-unary method.</span>
- <span class="sd"> Args:</span>
- <span class="sd"> method: The name of the RPC method.</span>
- <span class="sd"> request_serializer: Optional behaviour for serializing the request</span>
- <span class="sd"> message. Request goes unserialized in case None is passed.</span>
- <span class="sd"> response_deserializer: Optional behaviour for deserializing the response</span>
- <span class="sd"> message. Response goes undeserialized in case None is passed.</span>
- <span class="sd"> Returns:</span>
- <span class="sd"> A StreamUnaryMultiCallable value for the named stream-unary method.</span>
- <span class="sd"> """</span>
- <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">()</span></div>
- <div class="viewcode-block" id="Channel.stream_stream"><a class="viewcode-back" href="../grpc.html#grpc.Channel.stream_stream">[docs]</a> <span class="nd">@abc</span><span class="o">.</span><span class="n">abstractmethod</span>
- <span class="k">def</span> <span class="nf">stream_stream</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span>
- <span class="n">method</span><span class="p">,</span>
- <span class="n">request_serializer</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
- <span class="n">response_deserializer</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
- <span class="sd">"""Creates a StreamStreamMultiCallable for a stream-stream method.</span>
- <span class="sd"> Args:</span>
- <span class="sd"> method: The name of the RPC method.</span>
- <span class="sd"> request_serializer: Optional behaviour for serializing the request</span>
- <span class="sd"> message. Request goes unserialized in case None is passed.</span>
- <span class="sd"> response_deserializer: Optional behaviour for deserializing the response</span>
- <span class="sd"> message. Response goes undeserialized in case None is passed.</span>
- <span class="sd"> Returns:</span>
- <span class="sd"> A StreamStreamMultiCallable value for the named stream-stream method.</span>
- <span class="sd"> """</span>
- <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">()</span></div></div>
- <span class="c1">########################## Service-Side Context ##############################</span>
- <div class="viewcode-block" id="ServicerContext"><a class="viewcode-back" href="../grpc.html#grpc.ServicerContext">[docs]</a><span class="k">class</span> <span class="nc">ServicerContext</span><span class="p">(</span><span class="n">six</span><span class="o">.</span><span class="n">with_metaclass</span><span class="p">(</span><span class="n">abc</span><span class="o">.</span><span class="n">ABCMeta</span><span class="p">,</span> <span class="n">RpcContext</span><span class="p">)):</span>
- <span class="sd">"""A context object passed to method implementations."""</span>
- <div class="viewcode-block" id="ServicerContext.invocation_metadata"><a class="viewcode-back" href="../grpc.html#grpc.ServicerContext.invocation_metadata">[docs]</a> <span class="nd">@abc</span><span class="o">.</span><span class="n">abstractmethod</span>
- <span class="k">def</span> <span class="nf">invocation_metadata</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
- <span class="sd">"""Accesses the metadata from the sent by the client.</span>
- <span class="sd"> Returns:</span>
- <span class="sd"> The invocation :term:`metadata`.</span>
- <span class="sd"> """</span>
- <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">()</span></div>
- <div class="viewcode-block" id="ServicerContext.peer"><a class="viewcode-back" href="../grpc.html#grpc.ServicerContext.peer">[docs]</a> <span class="nd">@abc</span><span class="o">.</span><span class="n">abstractmethod</span>
- <span class="k">def</span> <span class="nf">peer</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
- <span class="sd">"""Identifies the peer that invoked the RPC being serviced.</span>
- <span class="sd"> Returns:</span>
- <span class="sd"> A string identifying the peer that invoked the RPC being serviced.</span>
- <span class="sd"> The string format is determined by gRPC runtime.</span>
- <span class="sd"> """</span>
- <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">()</span></div>
- <div class="viewcode-block" id="ServicerContext.peer_identities"><a class="viewcode-back" href="../grpc.html#grpc.ServicerContext.peer_identities">[docs]</a> <span class="nd">@abc</span><span class="o">.</span><span class="n">abstractmethod</span>
- <span class="k">def</span> <span class="nf">peer_identities</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
- <span class="sd">"""Gets one or more peer identity(s).</span>
- <span class="sd"> Equivalent to</span>
- <span class="sd"> servicer_context.auth_context().get(</span>
- <span class="sd"> servicer_context.peer_identity_key())</span>
- <span class="sd"> Returns:</span>
- <span class="sd"> An iterable of the identities, or None if the call is not authenticated.</span>
- <span class="sd"> Each identity is returned as a raw bytes type.</span>
- <span class="sd"> """</span>
- <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">()</span></div>
- <div class="viewcode-block" id="ServicerContext.peer_identity_key"><a class="viewcode-back" href="../grpc.html#grpc.ServicerContext.peer_identity_key">[docs]</a> <span class="nd">@abc</span><span class="o">.</span><span class="n">abstractmethod</span>
- <span class="k">def</span> <span class="nf">peer_identity_key</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
- <span class="sd">"""The auth property used to identify the peer.</span>
- <span class="sd"> For example, "x509_common_name" or "x509_subject_alternative_name" are</span>
- <span class="sd"> used to identify an SSL peer.</span>
- <span class="sd"> Returns:</span>
- <span class="sd"> The auth property (string) that indicates the</span>
- <span class="sd"> peer identity, or None if the call is not authenticated.</span>
- <span class="sd"> """</span>
- <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">()</span></div>
- <div class="viewcode-block" id="ServicerContext.auth_context"><a class="viewcode-back" href="../grpc.html#grpc.ServicerContext.auth_context">[docs]</a> <span class="nd">@abc</span><span class="o">.</span><span class="n">abstractmethod</span>
- <span class="k">def</span> <span class="nf">auth_context</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
- <span class="sd">"""Gets the auth context for the call.</span>
- <span class="sd"> Returns:</span>
- <span class="sd"> A map of strings to an iterable of bytes for each auth property.</span>
- <span class="sd"> """</span>
- <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">()</span></div>
- <div class="viewcode-block" id="ServicerContext.send_initial_metadata"><a class="viewcode-back" href="../grpc.html#grpc.ServicerContext.send_initial_metadata">[docs]</a> <span class="nd">@abc</span><span class="o">.</span><span class="n">abstractmethod</span>
- <span class="k">def</span> <span class="nf">send_initial_metadata</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">initial_metadata</span><span class="p">):</span>
- <span class="sd">"""Sends the initial metadata value to the client.</span>
- <span class="sd"> This method need not be called by implementations if they have no</span>
- <span class="sd"> metadata to add to what the gRPC runtime will transmit.</span>
- <span class="sd"> Args:</span>
- <span class="sd"> initial_metadata: The initial :term:`metadata`.</span>
- <span class="sd"> """</span>
- <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">()</span></div>
- <div class="viewcode-block" id="ServicerContext.set_trailing_metadata"><a class="viewcode-back" href="../grpc.html#grpc.ServicerContext.set_trailing_metadata">[docs]</a> <span class="nd">@abc</span><span class="o">.</span><span class="n">abstractmethod</span>
- <span class="k">def</span> <span class="nf">set_trailing_metadata</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">trailing_metadata</span><span class="p">):</span>
- <span class="sd">"""Sends the trailing metadata for the RPC.</span>
- <span class="sd"> This method need not be called by implementations if they have no</span>
- <span class="sd"> metadata to add to what the gRPC runtime will transmit.</span>
- <span class="sd"> Args:</span>
- <span class="sd"> trailing_metadata: The trailing :term:`metadata`.</span>
- <span class="sd"> """</span>
- <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">()</span></div>
- <div class="viewcode-block" id="ServicerContext.abort"><a class="viewcode-back" href="../grpc.html#grpc.ServicerContext.abort">[docs]</a> <span class="nd">@abc</span><span class="o">.</span><span class="n">abstractmethod</span>
- <span class="k">def</span> <span class="nf">abort</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">code</span><span class="p">,</span> <span class="n">details</span><span class="p">):</span>
- <span class="sd">"""Raises an exception to terminate the RPC with a non-OK status.</span>
- <span class="sd"> The code and details passed as arguments will supercede any existing</span>
- <span class="sd"> ones.</span>
- <span class="sd"> Args:</span>
- <span class="sd"> code: A StatusCode object to be sent to the client.</span>
- <span class="sd"> It must not be StatusCode.OK.</span>
- <span class="sd"> details: An ASCII-encodable string to be sent to the client upon</span>
- <span class="sd"> termination of the RPC.</span>
- <span class="sd"> Raises:</span>
- <span class="sd"> Exception: An exception is always raised to signal the abortion the</span>
- <span class="sd"> RPC to the gRPC runtime.</span>
- <span class="sd"> """</span>
- <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">()</span></div>
- <div class="viewcode-block" id="ServicerContext.set_code"><a class="viewcode-back" href="../grpc.html#grpc.ServicerContext.set_code">[docs]</a> <span class="nd">@abc</span><span class="o">.</span><span class="n">abstractmethod</span>
- <span class="k">def</span> <span class="nf">set_code</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">code</span><span class="p">):</span>
- <span class="sd">"""Sets the value to be used as status code upon RPC completion.</span>
- <span class="sd"> This method need not be called by method implementations if they wish</span>
- <span class="sd"> the gRPC runtime to determine the status code of the RPC.</span>
- <span class="sd"> Args:</span>
- <span class="sd"> code: A StatusCode object to be sent to the client.</span>
- <span class="sd"> """</span>
- <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">()</span></div>
- <div class="viewcode-block" id="ServicerContext.set_details"><a class="viewcode-back" href="../grpc.html#grpc.ServicerContext.set_details">[docs]</a> <span class="nd">@abc</span><span class="o">.</span><span class="n">abstractmethod</span>
- <span class="k">def</span> <span class="nf">set_details</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">details</span><span class="p">):</span>
- <span class="sd">"""Sets the value to be used as detail string upon RPC completion.</span>
- <span class="sd"> This method need not be called by method implementations if they have</span>
- <span class="sd"> no details to transmit.</span>
- <span class="sd"> Args:</span>
- <span class="sd"> details: An ASCII-encodable string to be sent to the client upon</span>
- <span class="sd"> termination of the RPC.</span>
- <span class="sd"> """</span>
- <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">()</span></div></div>
- <span class="c1">##################### Service-Side Handler Interfaces ########################</span>
- <div class="viewcode-block" id="RpcMethodHandler"><a class="viewcode-back" href="../grpc.html#grpc.RpcMethodHandler">[docs]</a><span class="k">class</span> <span class="nc">RpcMethodHandler</span><span class="p">(</span><span class="n">six</span><span class="o">.</span><span class="n">with_metaclass</span><span class="p">(</span><span class="n">abc</span><span class="o">.</span><span class="n">ABCMeta</span><span class="p">)):</span>
- <span class="sd">"""An implementation of a single RPC method.</span>
- <span class="sd"> Attributes:</span>
- <span class="sd"> request_streaming: Whether the RPC supports exactly one request message or</span>
- <span class="sd"> any arbitrary number of request messages.</span>
- <span class="sd"> response_streaming: Whether the RPC supports exactly one response message or</span>
- <span class="sd"> any arbitrary number of response messages.</span>
- <span class="sd"> request_deserializer: A callable behavior that accepts a byte string and</span>
- <span class="sd"> returns an object suitable to be passed to this object's business logic,</span>
- <span class="sd"> or None to indicate that this object's business logic should be passed the</span>
- <span class="sd"> raw request bytes.</span>
- <span class="sd"> response_serializer: A callable behavior that accepts an object produced by</span>
- <span class="sd"> this object's business logic and returns a byte string, or None to</span>
- <span class="sd"> indicate that the byte strings produced by this object's business logic</span>
- <span class="sd"> should be transmitted on the wire as they are.</span>
- <span class="sd"> unary_unary: This object's application-specific business logic as a callable</span>
- <span class="sd"> value that takes a request value and a ServicerContext object and returns</span>
- <span class="sd"> a response value. Only non-None if both request_streaming and</span>
- <span class="sd"> response_streaming are False.</span>
- <span class="sd"> unary_stream: This object's application-specific business logic as a</span>
- <span class="sd"> callable value that takes a request value and a ServicerContext object and</span>
- <span class="sd"> returns an iterator of response values. Only non-None if request_streaming</span>
- <span class="sd"> is False and response_streaming is True.</span>
- <span class="sd"> stream_unary: This object's application-specific business logic as a</span>
- <span class="sd"> callable value that takes an iterator of request values and a</span>
- <span class="sd"> ServicerContext object and returns a response value. Only non-None if</span>
- <span class="sd"> request_streaming is True and response_streaming is False.</span>
- <span class="sd"> stream_stream: This object's application-specific business logic as a</span>
- <span class="sd"> callable value that takes an iterator of request values and a</span>
- <span class="sd"> ServicerContext object and returns an iterator of response values. Only</span>
- <span class="sd"> non-None if request_streaming and response_streaming are both True.</span>
- <span class="sd"> """</span></div>
- <div class="viewcode-block" id="HandlerCallDetails"><a class="viewcode-back" href="../grpc.html#grpc.HandlerCallDetails">[docs]</a><span class="k">class</span> <span class="nc">HandlerCallDetails</span><span class="p">(</span><span class="n">six</span><span class="o">.</span><span class="n">with_metaclass</span><span class="p">(</span><span class="n">abc</span><span class="o">.</span><span class="n">ABCMeta</span><span class="p">)):</span>
- <span class="sd">"""Describes an RPC that has just arrived for service.</span>
- <span class="sd"> Attributes:</span>
- <span class="sd"> method: The method name of the RPC.</span>
- <span class="sd"> invocation_metadata: The :term:`metadata` sent by the client.</span>
- <span class="sd"> """</span></div>
- <div class="viewcode-block" id="GenericRpcHandler"><a class="viewcode-back" href="../grpc.html#grpc.GenericRpcHandler">[docs]</a><span class="k">class</span> <span class="nc">GenericRpcHandler</span><span class="p">(</span><span class="n">six</span><span class="o">.</span><span class="n">with_metaclass</span><span class="p">(</span><span class="n">abc</span><span class="o">.</span><span class="n">ABCMeta</span><span class="p">)):</span>
- <span class="sd">"""An implementation of arbitrarily many RPC methods."""</span>
- <div class="viewcode-block" id="GenericRpcHandler.service"><a class="viewcode-back" href="../grpc.html#grpc.GenericRpcHandler.service">[docs]</a> <span class="nd">@abc</span><span class="o">.</span><span class="n">abstractmethod</span>
- <span class="k">def</span> <span class="nf">service</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">handler_call_details</span><span class="p">):</span>
- <span class="sd">"""Returns the handler for servicing the RPC.</span>
- <span class="sd"> Args:</span>
- <span class="sd"> handler_call_details: A HandlerCallDetails describing the RPC.</span>
- <span class="sd"> Returns:</span>
- <span class="sd"> An RpcMethodHandler with which the RPC may be serviced if the</span>
- <span class="sd"> implementation chooses to service this RPC, or None otherwise.</span>
- <span class="sd"> """</span>
- <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">()</span></div></div>
- <div class="viewcode-block" id="ServiceRpcHandler"><a class="viewcode-back" href="../grpc.html#grpc.ServiceRpcHandler">[docs]</a><span class="k">class</span> <span class="nc">ServiceRpcHandler</span><span class="p">(</span><span class="n">six</span><span class="o">.</span><span class="n">with_metaclass</span><span class="p">(</span><span class="n">abc</span><span class="o">.</span><span class="n">ABCMeta</span><span class="p">,</span> <span class="n">GenericRpcHandler</span><span class="p">)):</span>
- <span class="sd">"""An implementation of RPC methods belonging to a service.</span>
- <span class="sd"> A service handles RPC methods with structured names of the form</span>
- <span class="sd"> '/Service.Name/Service.Method', where 'Service.Name' is the value</span>
- <span class="sd"> returned by service_name(), and 'Service.Method' is the method</span>
- <span class="sd"> name. A service can have multiple method names, but only a single</span>
- <span class="sd"> service name.</span>
- <span class="sd"> """</span>
- <div class="viewcode-block" id="ServiceRpcHandler.service_name"><a class="viewcode-back" href="../grpc.html#grpc.ServiceRpcHandler.service_name">[docs]</a> <span class="nd">@abc</span><span class="o">.</span><span class="n">abstractmethod</span>
- <span class="k">def</span> <span class="nf">service_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
- <span class="sd">"""Returns this service's name.</span>
- <span class="sd"> Returns:</span>
- <span class="sd"> The service name.</span>
- <span class="sd"> """</span>
- <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">()</span></div></div>
- <span class="c1">#################### Service-Side Interceptor Interfaces #####################</span>
- <div class="viewcode-block" id="ServerInterceptor"><a class="viewcode-back" href="../grpc.html#grpc.ServerInterceptor">[docs]</a><span class="k">class</span> <span class="nc">ServerInterceptor</span><span class="p">(</span><span class="n">six</span><span class="o">.</span><span class="n">with_metaclass</span><span class="p">(</span><span class="n">abc</span><span class="o">.</span><span class="n">ABCMeta</span><span class="p">)):</span>
- <span class="sd">"""Affords intercepting incoming RPCs on the service-side.</span>
- <span class="sd"> This is an EXPERIMENTAL API.</span>
- <span class="sd"> """</span>
- <div class="viewcode-block" id="ServerInterceptor.intercept_service"><a class="viewcode-back" href="../grpc.html#grpc.ServerInterceptor.intercept_service">[docs]</a> <span class="nd">@abc</span><span class="o">.</span><span class="n">abstractmethod</span>
- <span class="k">def</span> <span class="nf">intercept_service</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">continuation</span><span class="p">,</span> <span class="n">handler_call_details</span><span class="p">):</span>
- <span class="sd">"""Intercepts incoming RPCs before handing them over to a handler.</span>
- <span class="sd"> Args:</span>
- <span class="sd"> continuation: A function that takes a HandlerCallDetails and</span>
- <span class="sd"> proceeds to invoke the next interceptor in the chain, if any,</span>
- <span class="sd"> or the RPC handler lookup logic, with the call details passed</span>
- <span class="sd"> as an argument, and returns an RpcMethodHandler instance if</span>
- <span class="sd"> the RPC is considered serviced, or None otherwise.</span>
- <span class="sd"> handler_call_details: A HandlerCallDetails describing the RPC.</span>
- <span class="sd"> Returns:</span>
- <span class="sd"> An RpcMethodHandler with which the RPC may be serviced if the</span>
- <span class="sd"> interceptor chooses to service this RPC, or None otherwise.</span>
- <span class="sd"> """</span>
- <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">()</span></div></div>
- <span class="c1">############################# Server Interface ###############################</span>
- <div class="viewcode-block" id="Server"><a class="viewcode-back" href="../grpc.html#grpc.Server">[docs]</a><span class="k">class</span> <span class="nc">Server</span><span class="p">(</span><span class="n">six</span><span class="o">.</span><span class="n">with_metaclass</span><span class="p">(</span><span class="n">abc</span><span class="o">.</span><span class="n">ABCMeta</span><span class="p">)):</span>
- <span class="sd">"""Services RPCs."""</span>
- <div class="viewcode-block" id="Server.add_generic_rpc_handlers"><a class="viewcode-back" href="../grpc.html#grpc.Server.add_generic_rpc_handlers">[docs]</a> <span class="nd">@abc</span><span class="o">.</span><span class="n">abstractmethod</span>
- <span class="k">def</span> <span class="nf">add_generic_rpc_handlers</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">generic_rpc_handlers</span><span class="p">):</span>
- <span class="sd">"""Registers GenericRpcHandlers with this Server.</span>
- <span class="sd"> This method is only safe to call before the server is started.</span>
- <span class="sd"> Args:</span>
- <span class="sd"> generic_rpc_handlers: An iterable of GenericRpcHandlers that will be used</span>
- <span class="sd"> to service RPCs.</span>
- <span class="sd"> """</span>
- <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">()</span></div>
- <div class="viewcode-block" id="Server.add_insecure_port"><a class="viewcode-back" href="../grpc.html#grpc.Server.add_insecure_port">[docs]</a> <span class="nd">@abc</span><span class="o">.</span><span class="n">abstractmethod</span>
- <span class="k">def</span> <span class="nf">add_insecure_port</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">address</span><span class="p">):</span>
- <span class="sd">"""Opens an insecure port for accepting RPCs.</span>
- <span class="sd"> This method may only be called before starting the server.</span>
- <span class="sd"> Args:</span>
- <span class="sd"> address: The address for which to open a port.</span>
- <span class="sd"> if the port is 0, or not specified in the address, then gRPC runtime</span>
- <span class="sd"> will choose a port.</span>
- <span class="sd"> Returns:</span>
- <span class="sd"> integer:</span>
- <span class="sd"> An integer port on which server will accept RPC requests.</span>
- <span class="sd"> """</span>
- <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">()</span></div>
- <div class="viewcode-block" id="Server.add_secure_port"><a class="viewcode-back" href="../grpc.html#grpc.Server.add_secure_port">[docs]</a> <span class="nd">@abc</span><span class="o">.</span><span class="n">abstractmethod</span>
- <span class="k">def</span> <span class="nf">add_secure_port</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">address</span><span class="p">,</span> <span class="n">server_credentials</span><span class="p">):</span>
- <span class="sd">"""Opens a secure port for accepting RPCs.</span>
- <span class="sd"> This method may only be called before starting the server.</span>
- <span class="sd"> Args:</span>
- <span class="sd"> address: The address for which to open a port.</span>
- <span class="sd"> if the port is 0, or not specified in the address, then gRPC runtime</span>
- <span class="sd"> will choose a port.</span>
- <span class="sd"> server_credentials: A ServerCredentials object.</span>
- <span class="sd"> Returns:</span>
- <span class="sd"> integer:</span>
- <span class="sd"> An integer port on which server will accept RPC requests.</span>
- <span class="sd"> """</span>
- <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">()</span></div>
- <div class="viewcode-block" id="Server.start"><a class="viewcode-back" href="../grpc.html#grpc.Server.start">[docs]</a> <span class="nd">@abc</span><span class="o">.</span><span class="n">abstractmethod</span>
- <span class="k">def</span> <span class="nf">start</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
- <span class="sd">"""Starts this Server.</span>
- <span class="sd"> This method may only be called once. (i.e. it is not idempotent).</span>
- <span class="sd"> """</span>
- <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">()</span></div>
- <div class="viewcode-block" id="Server.stop"><a class="viewcode-back" href="../grpc.html#grpc.Server.stop">[docs]</a> <span class="nd">@abc</span><span class="o">.</span><span class="n">abstractmethod</span>
- <span class="k">def</span> <span class="nf">stop</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">grace</span><span class="p">):</span>
- <span class="sd">"""Stops this Server.</span>
- <span class="sd"> This method immediately stop service of new RPCs in all cases.</span>
- <span class="sd"> If a grace period is specified, this method returns immediately</span>
- <span class="sd"> and all RPCs active at the end of the grace period are aborted.</span>
- <span class="sd"> If a grace period is not specified, then all existing RPCs are</span>
- <span class="sd"> teriminated immediately and the this method blocks until the last</span>
- <span class="sd"> RPC handler terminates.</span>
- <span class="sd"> This method is idempotent and may be called at any time. Passing a smaller</span>
- <span class="sd"> grace value in subsequentcall will have the effect of stopping the Server</span>
- <span class="sd"> sooner. Passing a larger grace value in subsequent call *will not* have the</span>
- <span class="sd"> effect of stopping the server later (i.e. the most restrictive grace</span>
- <span class="sd"> value is used).</span>
- <span class="sd"> Args:</span>
- <span class="sd"> grace: A duration of time in seconds or None.</span>
- <span class="sd"> Returns:</span>
- <span class="sd"> A threading.Event that will be set when this Server has completely</span>
- <span class="sd"> stopped, i.e. when running RPCs either complete or are aborted and</span>
- <span class="sd"> all handlers have terminated.</span>
- <span class="sd"> """</span>
- <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">()</span></div></div>
- <span class="c1">################################# Functions ################################</span>
- <div class="viewcode-block" id="unary_unary_rpc_method_handler"><a class="viewcode-back" href="../grpc.html#grpc.unary_unary_rpc_method_handler">[docs]</a><span class="k">def</span> <span class="nf">unary_unary_rpc_method_handler</span><span class="p">(</span><span class="n">behavior</span><span class="p">,</span>
- <span class="n">request_deserializer</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
- <span class="n">response_serializer</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
- <span class="sd">"""Creates an RpcMethodHandler for a unary-unary RPC method.</span>
- <span class="sd"> Args:</span>
- <span class="sd"> behavior: The implementation of an RPC that accepts one request and returns</span>
- <span class="sd"> one response.</span>
- <span class="sd"> request_deserializer: An optional behavior for request deserialization.</span>
- <span class="sd"> response_serializer: An optional behavior for response serialization.</span>
- <span class="sd"> Returns:</span>
- <span class="sd"> An RpcMethodHandler object that is typically used by grpc.Server.</span>
- <span class="sd"> """</span>
- <span class="kn">from</span> <span class="nn">grpc</span> <span class="k">import</span> <span class="n">_utilities</span> <span class="c1"># pylint: disable=cyclic-import</span>
- <span class="k">return</span> <span class="n">_utilities</span><span class="o">.</span><span class="n">RpcMethodHandler</span><span class="p">(</span><span class="kc">False</span><span class="p">,</span> <span class="kc">False</span><span class="p">,</span> <span class="n">request_deserializer</span><span class="p">,</span>
- <span class="n">response_serializer</span><span class="p">,</span> <span class="n">behavior</span><span class="p">,</span> <span class="kc">None</span><span class="p">,</span>
- <span class="kc">None</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span></div>
- <div class="viewcode-block" id="unary_stream_rpc_method_handler"><a class="viewcode-back" href="../grpc.html#grpc.unary_stream_rpc_method_handler">[docs]</a><span class="k">def</span> <span class="nf">unary_stream_rpc_method_handler</span><span class="p">(</span><span class="n">behavior</span><span class="p">,</span>
- <span class="n">request_deserializer</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
- <span class="n">response_serializer</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
- <span class="sd">"""Creates an RpcMethodHandler for a unary-stream RPC method.</span>
- <span class="sd"> Args:</span>
- <span class="sd"> behavior: The implementation of an RPC that accepts one request and returns</span>
- <span class="sd"> an iterator of response values.</span>
- <span class="sd"> request_deserializer: An optional behavior for request deserialization.</span>
- <span class="sd"> response_serializer: An optional behavior for response serialization.</span>
- <span class="sd"> Returns:</span>
- <span class="sd"> An RpcMethodHandler object that is typically used by grpc.Server.</span>
- <span class="sd"> """</span>
- <span class="kn">from</span> <span class="nn">grpc</span> <span class="k">import</span> <span class="n">_utilities</span> <span class="c1"># pylint: disable=cyclic-import</span>
- <span class="k">return</span> <span class="n">_utilities</span><span class="o">.</span><span class="n">RpcMethodHandler</span><span class="p">(</span><span class="kc">False</span><span class="p">,</span> <span class="kc">True</span><span class="p">,</span> <span class="n">request_deserializer</span><span class="p">,</span>
- <span class="n">response_serializer</span><span class="p">,</span> <span class="kc">None</span><span class="p">,</span> <span class="n">behavior</span><span class="p">,</span>
- <span class="kc">None</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span></div>
- <div class="viewcode-block" id="stream_unary_rpc_method_handler"><a class="viewcode-back" href="../grpc.html#grpc.stream_unary_rpc_method_handler">[docs]</a><span class="k">def</span> <span class="nf">stream_unary_rpc_method_handler</span><span class="p">(</span><span class="n">behavior</span><span class="p">,</span>
- <span class="n">request_deserializer</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
- <span class="n">response_serializer</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
- <span class="sd">"""Creates an RpcMethodHandler for a stream-unary RPC method.</span>
- <span class="sd"> Args:</span>
- <span class="sd"> behavior: The implementation of an RPC that accepts an iterator of request</span>
- <span class="sd"> values and returns a single response value.</span>
- <span class="sd"> request_deserializer: An optional behavior for request deserialization.</span>
- <span class="sd"> response_serializer: An optional behavior for response serialization.</span>
- <span class="sd"> Returns:</span>
- <span class="sd"> An RpcMethodHandler object that is typically used by grpc.Server.</span>
- <span class="sd"> """</span>
- <span class="kn">from</span> <span class="nn">grpc</span> <span class="k">import</span> <span class="n">_utilities</span> <span class="c1"># pylint: disable=cyclic-import</span>
- <span class="k">return</span> <span class="n">_utilities</span><span class="o">.</span><span class="n">RpcMethodHandler</span><span class="p">(</span><span class="kc">True</span><span class="p">,</span> <span class="kc">False</span><span class="p">,</span> <span class="n">request_deserializer</span><span class="p">,</span>
- <span class="n">response_serializer</span><span class="p">,</span> <span class="kc">None</span><span class="p">,</span> <span class="kc">None</span><span class="p">,</span>
- <span class="n">behavior</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span></div>
- <div class="viewcode-block" id="stream_stream_rpc_method_handler"><a class="viewcode-back" href="../grpc.html#grpc.stream_stream_rpc_method_handler">[docs]</a><span class="k">def</span> <span class="nf">stream_stream_rpc_method_handler</span><span class="p">(</span><span class="n">behavior</span><span class="p">,</span>
- <span class="n">request_deserializer</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
- <span class="n">response_serializer</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
- <span class="sd">"""Creates an RpcMethodHandler for a stream-stream RPC method.</span>
- <span class="sd"> Args:</span>
- <span class="sd"> behavior: The implementation of an RPC that accepts an iterator of request</span>
- <span class="sd"> values and returns an iterator of response values.</span>
- <span class="sd"> request_deserializer: An optional behavior for request deserialization.</span>
- <span class="sd"> response_serializer: An optional behavior for response serialization.</span>
- <span class="sd"> Returns:</span>
- <span class="sd"> An RpcMethodHandler object that is typically used by grpc.Server.</span>
- <span class="sd"> """</span>
- <span class="kn">from</span> <span class="nn">grpc</span> <span class="k">import</span> <span class="n">_utilities</span> <span class="c1"># pylint: disable=cyclic-import</span>
- <span class="k">return</span> <span class="n">_utilities</span><span class="o">.</span><span class="n">RpcMethodHandler</span><span class="p">(</span><span class="kc">True</span><span class="p">,</span> <span class="kc">True</span><span class="p">,</span> <span class="n">request_deserializer</span><span class="p">,</span>
- <span class="n">response_serializer</span><span class="p">,</span> <span class="kc">None</span><span class="p">,</span> <span class="kc">None</span><span class="p">,</span> <span class="kc">None</span><span class="p">,</span>
- <span class="n">behavior</span><span class="p">)</span></div>
- <div class="viewcode-block" id="method_handlers_generic_handler"><a class="viewcode-back" href="../grpc.html#grpc.method_handlers_generic_handler">[docs]</a><span class="k">def</span> <span class="nf">method_handlers_generic_handler</span><span class="p">(</span><span class="n">service</span><span class="p">,</span> <span class="n">method_handlers</span><span class="p">):</span>
- <span class="sd">"""Creates a GenericRpcHandler from RpcMethodHandlers.</span>
- <span class="sd"> Args:</span>
- <span class="sd"> service: The name of the service that is implemented by the method_handlers.</span>
- <span class="sd"> method_handlers: A dictionary that maps method names to corresponding</span>
- <span class="sd"> RpcMethodHandler.</span>
- <span class="sd"> Returns:</span>
- <span class="sd"> A GenericRpcHandler. This is typically added to the grpc.Server object</span>
- <span class="sd"> with add_generic_rpc_handlers() before starting the server.</span>
- <span class="sd"> """</span>
- <span class="kn">from</span> <span class="nn">grpc</span> <span class="k">import</span> <span class="n">_utilities</span> <span class="c1"># pylint: disable=cyclic-import</span>
- <span class="k">return</span> <span class="n">_utilities</span><span class="o">.</span><span class="n">DictionaryGenericHandler</span><span class="p">(</span><span class="n">service</span><span class="p">,</span> <span class="n">method_handlers</span><span class="p">)</span></div>
- <div class="viewcode-block" id="ssl_channel_credentials"><a class="viewcode-back" href="../grpc.html#grpc.ssl_channel_credentials">[docs]</a><span class="k">def</span> <span class="nf">ssl_channel_credentials</span><span class="p">(</span><span class="n">root_certificates</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
- <span class="n">private_key</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
- <span class="n">certificate_chain</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
- <span class="sd">"""Creates a ChannelCredentials for use with an SSL-enabled Channel.</span>
- <span class="sd"> Args:</span>
- <span class="sd"> root_certificates: The PEM-encoded root certificates as a byte string,</span>
- <span class="sd"> or None to retrieve them from a default location chosen by gRPC</span>
- <span class="sd"> runtime.</span>
- <span class="sd"> private_key: The PEM-encoded private key as a byte string, or None if no</span>
- <span class="sd"> private key should be used.</span>
- <span class="sd"> certificate_chain: The PEM-encoded certificate chain as a byte string</span>
- <span class="sd"> to use or or None if no certificate chain should be used.</span>
- <span class="sd"> Returns:</span>
- <span class="sd"> A ChannelCredentials for use with an SSL-enabled Channel.</span>
- <span class="sd"> """</span>
- <span class="k">return</span> <span class="n">ChannelCredentials</span><span class="p">(</span>
- <span class="n">_cygrpc</span><span class="o">.</span><span class="n">SSLChannelCredentials</span><span class="p">(</span><span class="n">root_certificates</span><span class="p">,</span> <span class="n">private_key</span><span class="p">,</span>
- <span class="n">certificate_chain</span><span class="p">))</span></div>
- <div class="viewcode-block" id="metadata_call_credentials"><a class="viewcode-back" href="../grpc.html#grpc.metadata_call_credentials">[docs]</a><span class="k">def</span> <span class="nf">metadata_call_credentials</span><span class="p">(</span><span class="n">metadata_plugin</span><span class="p">,</span> <span class="n">name</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
- <span class="sd">"""Construct CallCredentials from an AuthMetadataPlugin.</span>
- <span class="sd"> Args:</span>
- <span class="sd"> metadata_plugin: An AuthMetadataPlugin to use for authentication.</span>
- <span class="sd"> name: An optional name for the plugin.</span>
- <span class="sd"> Returns:</span>
- <span class="sd"> A CallCredentials.</span>
- <span class="sd"> """</span>
- <span class="kn">from</span> <span class="nn">grpc</span> <span class="k">import</span> <span class="n">_plugin_wrapping</span> <span class="c1"># pylint: disable=cyclic-import</span>
- <span class="k">return</span> <span class="n">_plugin_wrapping</span><span class="o">.</span><span class="n">metadata_plugin_call_credentials</span><span class="p">(</span><span class="n">metadata_plugin</span><span class="p">,</span>
- <span class="n">name</span><span class="p">)</span></div>
- <div class="viewcode-block" id="access_token_call_credentials"><a class="viewcode-back" href="../grpc.html#grpc.access_token_call_credentials">[docs]</a><span class="k">def</span> <span class="nf">access_token_call_credentials</span><span class="p">(</span><span class="n">access_token</span><span class="p">):</span>
- <span class="sd">"""Construct CallCredentials from an access token.</span>
- <span class="sd"> Args:</span>
- <span class="sd"> access_token: A string to place directly in the http request</span>
- <span class="sd"> authorization header, for example</span>
- <span class="sd"> "authorization: Bearer <access_token>".</span>
- <span class="sd"> Returns:</span>
- <span class="sd"> A CallCredentials.</span>
- <span class="sd"> """</span>
- <span class="kn">from</span> <span class="nn">grpc</span> <span class="k">import</span> <span class="n">_auth</span> <span class="c1"># pylint: disable=cyclic-import</span>
- <span class="kn">from</span> <span class="nn">grpc</span> <span class="k">import</span> <span class="n">_plugin_wrapping</span> <span class="c1"># pylint: disable=cyclic-import</span>
- <span class="k">return</span> <span class="n">_plugin_wrapping</span><span class="o">.</span><span class="n">metadata_plugin_call_credentials</span><span class="p">(</span>
- <span class="n">_auth</span><span class="o">.</span><span class="n">AccessTokenAuthMetadataPlugin</span><span class="p">(</span><span class="n">access_token</span><span class="p">),</span> <span class="kc">None</span><span class="p">)</span></div>
- <div class="viewcode-block" id="composite_call_credentials"><a class="viewcode-back" href="../grpc.html#grpc.composite_call_credentials">[docs]</a><span class="k">def</span> <span class="nf">composite_call_credentials</span><span class="p">(</span><span class="o">*</span><span class="n">call_credentials</span><span class="p">):</span>
- <span class="sd">"""Compose multiple CallCredentials to make a new CallCredentials.</span>
- <span class="sd"> Args:</span>
- <span class="sd"> *call_credentials: At least two CallCredentials objects.</span>
- <span class="sd"> Returns:</span>
- <span class="sd"> A CallCredentials object composed of the given CallCredentials objects.</span>
- <span class="sd"> """</span>
- <span class="k">return</span> <span class="n">CallCredentials</span><span class="p">(</span>
- <span class="n">_cygrpc</span><span class="o">.</span><span class="n">CompositeCallCredentials</span><span class="p">(</span>
- <span class="nb">tuple</span><span class="p">(</span><span class="n">single_call_credentials</span><span class="o">.</span><span class="n">_credentials</span>
- <span class="k">for</span> <span class="n">single_call_credentials</span> <span class="ow">in</span> <span class="n">call_credentials</span><span class="p">)))</span></div>
- <div class="viewcode-block" id="composite_channel_credentials"><a class="viewcode-back" href="../grpc.html#grpc.composite_channel_credentials">[docs]</a><span class="k">def</span> <span class="nf">composite_channel_credentials</span><span class="p">(</span><span class="n">channel_credentials</span><span class="p">,</span> <span class="o">*</span><span class="n">call_credentials</span><span class="p">):</span>
- <span class="sd">"""Compose a ChannelCredentials and one or more CallCredentials objects.</span>
- <span class="sd"> Args:</span>
- <span class="sd"> channel_credentials: A ChannelCredentials object.</span>
- <span class="sd"> *call_credentials: One or more CallCredentials objects.</span>
- <span class="sd"> Returns:</span>
- <span class="sd"> A ChannelCredentials composed of the given ChannelCredentials and</span>
- <span class="sd"> CallCredentials objects.</span>
- <span class="sd"> """</span>
- <span class="k">return</span> <span class="n">ChannelCredentials</span><span class="p">(</span>
- <span class="n">_cygrpc</span><span class="o">.</span><span class="n">CompositeChannelCredentials</span><span class="p">(</span>
- <span class="nb">tuple</span><span class="p">(</span><span class="n">single_call_credentials</span><span class="o">.</span><span class="n">_credentials</span>
- <span class="k">for</span> <span class="n">single_call_credentials</span> <span class="ow">in</span> <span class="n">call_credentials</span><span class="p">),</span>
- <span class="n">channel_credentials</span><span class="o">.</span><span class="n">_credentials</span><span class="p">))</span></div>
- <div class="viewcode-block" id="ssl_server_credentials"><a class="viewcode-back" href="../grpc.html#grpc.ssl_server_credentials">[docs]</a><span class="k">def</span> <span class="nf">ssl_server_credentials</span><span class="p">(</span><span class="n">private_key_certificate_chain_pairs</span><span class="p">,</span>
- <span class="n">root_certificates</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
- <span class="n">require_client_auth</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
- <span class="sd">"""Creates a ServerCredentials for use with an SSL-enabled Server.</span>
- <span class="sd"> Args:</span>
- <span class="sd"> private_key_certificate_chain_pairs: A list of pairs of the form</span>
- <span class="sd"> [PEM-encoded private key, PEM-encoded certificate chain].</span>
- <span class="sd"> root_certificates: An optional byte string of PEM-encoded client root</span>
- <span class="sd"> certificates that the server will use to verify client authentication.</span>
- <span class="sd"> If omitted, require_client_auth must also be False.</span>
- <span class="sd"> require_client_auth: A boolean indicating whether or not to require</span>
- <span class="sd"> clients to be authenticated. May only be True if root_certificates</span>
- <span class="sd"> is not None.</span>
- <span class="sd"> Returns:</span>
- <span class="sd"> A ServerCredentials for use with an SSL-enabled Server. Typically, this</span>
- <span class="sd"> object is an argument to add_secure_port() method during server setup.</span>
- <span class="sd"> """</span>
- <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">private_key_certificate_chain_pairs</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
- <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span>
- <span class="s1">'At least one private key-certificate chain pair is required!'</span><span class="p">)</span>
- <span class="k">elif</span> <span class="n">require_client_auth</span> <span class="ow">and</span> <span class="n">root_certificates</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
- <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span>
- <span class="s1">'Illegal to require client auth without providing root certificates!'</span>
- <span class="p">)</span>
- <span class="k">else</span><span class="p">:</span>
- <span class="k">return</span> <span class="n">ServerCredentials</span><span class="p">(</span>
- <span class="n">_cygrpc</span><span class="o">.</span><span class="n">server_credentials_ssl</span><span class="p">(</span><span class="n">root_certificates</span><span class="p">,</span> <span class="p">[</span>
- <span class="n">_cygrpc</span><span class="o">.</span><span class="n">SslPemKeyCertPair</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">pem</span><span class="p">)</span>
- <span class="k">for</span> <span class="n">key</span><span class="p">,</span> <span class="n">pem</span> <span class="ow">in</span> <span class="n">private_key_certificate_chain_pairs</span>
- <span class="p">],</span> <span class="n">require_client_auth</span><span class="p">))</span></div>
- <div class="viewcode-block" id="ssl_server_certificate_configuration"><a class="viewcode-back" href="../grpc.html#grpc.ssl_server_certificate_configuration">[docs]</a><span class="k">def</span> <span class="nf">ssl_server_certificate_configuration</span><span class="p">(</span><span class="n">private_key_certificate_chain_pairs</span><span class="p">,</span>
- <span class="n">root_certificates</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
- <span class="sd">"""Creates a ServerCertificateConfiguration for use with a Server.</span>
- <span class="sd"> Args:</span>
- <span class="sd"> private_key_certificate_chain_pairs: A collection of pairs of</span>
- <span class="sd"> the form [PEM-encoded private key, PEM-encoded certificate</span>
- <span class="sd"> chain].</span>
- <span class="sd"> root_certificates: An optional byte string of PEM-encoded client root</span>
- <span class="sd"> certificates that the server will use to verify client authentication.</span>
- <span class="sd"> Returns:</span>
- <span class="sd"> A ServerCertificateConfiguration that can be returned in the certificate</span>
- <span class="sd"> configuration fetching callback.</span>
- <span class="sd"> """</span>
- <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">private_key_certificate_chain_pairs</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
- <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span>
- <span class="s1">'At least one private key-certificate chain pair is required!'</span><span class="p">)</span>
- <span class="k">else</span><span class="p">:</span>
- <span class="k">return</span> <span class="n">ServerCertificateConfiguration</span><span class="p">(</span>
- <span class="n">_cygrpc</span><span class="o">.</span><span class="n">server_certificate_config_ssl</span><span class="p">(</span><span class="n">root_certificates</span><span class="p">,</span> <span class="p">[</span>
- <span class="n">_cygrpc</span><span class="o">.</span><span class="n">SslPemKeyCertPair</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">pem</span><span class="p">)</span>
- <span class="k">for</span> <span class="n">key</span><span class="p">,</span> <span class="n">pem</span> <span class="ow">in</span> <span class="n">private_key_certificate_chain_pairs</span>
- <span class="p">]))</span></div>
- <div class="viewcode-block" id="dynamic_ssl_server_credentials"><a class="viewcode-back" href="../grpc.html#grpc.dynamic_ssl_server_credentials">[docs]</a><span class="k">def</span> <span class="nf">dynamic_ssl_server_credentials</span><span class="p">(</span><span class="n">initial_certificate_configuration</span><span class="p">,</span>
- <span class="n">certificate_configuration_fetcher</span><span class="p">,</span>
- <span class="n">require_client_authentication</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
- <span class="sd">"""Creates a ServerCredentials for use with an SSL-enabled Server.</span>
- <span class="sd"> Args:</span>
- <span class="sd"> initial_certificate_configuration (ServerCertificateConfiguration): The</span>
- <span class="sd"> certificate configuration with which the server will be initialized.</span>
- <span class="sd"> certificate_configuration_fetcher (callable): A callable that takes no</span>
- <span class="sd"> arguments and should return a ServerCertificateConfiguration to</span>
- <span class="sd"> replace the server's current certificate, or None for no change</span>
- <span class="sd"> (i.e., the server will continue its current certificate</span>
- <span class="sd"> config). The library will call this callback on *every* new</span>
- <span class="sd"> client connection before starting the TLS handshake with the</span>
- <span class="sd"> client, thus allowing the user application to optionally</span>
- <span class="sd"> return a new ServerCertificateConfiguration that the server will then</span>
- <span class="sd"> use for the handshake.</span>
- <span class="sd"> require_client_authentication: A boolean indicating whether or not to</span>
- <span class="sd"> require clients to be authenticated.</span>
- <span class="sd"> Returns:</span>
- <span class="sd"> A ServerCredentials.</span>
- <span class="sd"> """</span>
- <span class="k">return</span> <span class="n">ServerCredentials</span><span class="p">(</span>
- <span class="n">_cygrpc</span><span class="o">.</span><span class="n">server_credentials_ssl_dynamic_cert_config</span><span class="p">(</span>
- <span class="n">initial_certificate_configuration</span><span class="p">,</span>
- <span class="n">certificate_configuration_fetcher</span><span class="p">,</span> <span class="n">require_client_authentication</span><span class="p">))</span></div>
- <div class="viewcode-block" id="channel_ready_future"><a class="viewcode-back" href="../grpc.html#grpc.channel_ready_future">[docs]</a><span class="k">def</span> <span class="nf">channel_ready_future</span><span class="p">(</span><span class="n">channel</span><span class="p">):</span>
- <span class="sd">"""Creates a Future that tracks when a Channel is ready.</span>
- <span class="sd"> Cancelling the Future does not affect the channel's state machine.</span>
- <span class="sd"> It merely decouples the Future from channel state machine.</span>
- <span class="sd"> Args:</span>
- <span class="sd"> channel: A Channel object.</span>
- <span class="sd"> Returns:</span>
- <span class="sd"> A Future object that matures when the channel connectivity is</span>
- <span class="sd"> ChannelConnectivity.READY.</span>
- <span class="sd"> """</span>
- <span class="kn">from</span> <span class="nn">grpc</span> <span class="k">import</span> <span class="n">_utilities</span> <span class="c1"># pylint: disable=cyclic-import</span>
- <span class="k">return</span> <span class="n">_utilities</span><span class="o">.</span><span class="n">channel_ready_future</span><span class="p">(</span><span class="n">channel</span><span class="p">)</span></div>
- <div class="viewcode-block" id="insecure_channel"><a class="viewcode-back" href="../grpc.html#grpc.insecure_channel">[docs]</a><span class="k">def</span> <span class="nf">insecure_channel</span><span class="p">(</span><span class="n">target</span><span class="p">,</span> <span class="n">options</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
- <span class="sd">"""Creates an insecure Channel to a server.</span>
- <span class="sd"> Args:</span>
- <span class="sd"> target: The server address</span>
- <span class="sd"> options: An optional list of key-value pairs (channel args in gRPC runtime)</span>
- <span class="sd"> to configure the channel.</span>
- <span class="sd"> Returns:</span>
- <span class="sd"> A Channel object.</span>
- <span class="sd"> """</span>
- <span class="kn">from</span> <span class="nn">grpc</span> <span class="k">import</span> <span class="n">_channel</span> <span class="c1"># pylint: disable=cyclic-import</span>
- <span class="k">return</span> <span class="n">_channel</span><span class="o">.</span><span class="n">Channel</span><span class="p">(</span><span class="n">target</span><span class="p">,</span> <span class="p">()</span> <span class="k">if</span> <span class="n">options</span> <span class="ow">is</span> <span class="kc">None</span> <span class="k">else</span> <span class="n">options</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span></div>
- <div class="viewcode-block" id="secure_channel"><a class="viewcode-back" href="../grpc.html#grpc.secure_channel">[docs]</a><span class="k">def</span> <span class="nf">secure_channel</span><span class="p">(</span><span class="n">target</span><span class="p">,</span> <span class="n">credentials</span><span class="p">,</span> <span class="n">options</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
- <span class="sd">"""Creates a secure Channel to a server.</span>
- <span class="sd"> Args:</span>
- <span class="sd"> target: The server address.</span>
- <span class="sd"> credentials: A ChannelCredentials instance.</span>
- <span class="sd"> options: An optional list of key-value pairs (channel args in gRPC runtime)</span>
- <span class="sd"> to configure the channel.</span>
- <span class="sd"> Returns:</span>
- <span class="sd"> A Channel object.</span>
- <span class="sd"> """</span>
- <span class="kn">from</span> <span class="nn">grpc</span> <span class="k">import</span> <span class="n">_channel</span> <span class="c1"># pylint: disable=cyclic-import</span>
- <span class="k">return</span> <span class="n">_channel</span><span class="o">.</span><span class="n">Channel</span><span class="p">(</span><span class="n">target</span><span class="p">,</span> <span class="p">()</span> <span class="k">if</span> <span class="n">options</span> <span class="ow">is</span> <span class="kc">None</span> <span class="k">else</span> <span class="n">options</span><span class="p">,</span>
- <span class="n">credentials</span><span class="o">.</span><span class="n">_credentials</span><span class="p">)</span></div>
- <div class="viewcode-block" id="intercept_channel"><a class="viewcode-back" href="../grpc.html#grpc.intercept_channel">[docs]</a><span class="k">def</span> <span class="nf">intercept_channel</span><span class="p">(</span><span class="n">channel</span><span class="p">,</span> <span class="o">*</span><span class="n">interceptors</span><span class="p">):</span>
- <span class="sd">"""Intercepts a channel through a set of interceptors.</span>
- <span class="sd"> This is an EXPERIMENTAL API.</span>
- <span class="sd"> Args:</span>
- <span class="sd"> channel: A Channel.</span>
- <span class="sd"> interceptors: Zero or more objects of type</span>
- <span class="sd"> UnaryUnaryClientInterceptor,</span>
- <span class="sd"> UnaryStreamClientInterceptor,</span>
- <span class="sd"> StreamUnaryClientInterceptor, or</span>
- <span class="sd"> StreamStreamClientInterceptor.</span>
- <span class="sd"> Interceptors are given control in the order they are listed.</span>
- <span class="sd"> Returns:</span>
- <span class="sd"> A Channel that intercepts each invocation via the provided interceptors.</span>
- <span class="sd"> Raises:</span>
- <span class="sd"> TypeError: If interceptor does not derive from any of</span>
- <span class="sd"> UnaryUnaryClientInterceptor,</span>
- <span class="sd"> UnaryStreamClientInterceptor,</span>
- <span class="sd"> StreamUnaryClientInterceptor, or</span>
- <span class="sd"> StreamStreamClientInterceptor.</span>
- <span class="sd"> """</span>
- <span class="kn">from</span> <span class="nn">grpc</span> <span class="k">import</span> <span class="n">_interceptor</span> <span class="c1"># pylint: disable=cyclic-import</span>
- <span class="k">return</span> <span class="n">_interceptor</span><span class="o">.</span><span class="n">intercept_channel</span><span class="p">(</span><span class="n">channel</span><span class="p">,</span> <span class="o">*</span><span class="n">interceptors</span><span class="p">)</span></div>
- <div class="viewcode-block" id="server"><a class="viewcode-back" href="../grpc.html#grpc.server">[docs]</a><span class="k">def</span> <span class="nf">server</span><span class="p">(</span><span class="n">thread_pool</span><span class="p">,</span>
- <span class="n">handlers</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
- <span class="n">interceptors</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
- <span class="n">options</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
- <span class="n">maximum_concurrent_rpcs</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
- <span class="sd">"""Creates a Server with which RPCs can be serviced.</span>
- <span class="sd"> Args:</span>
- <span class="sd"> thread_pool: A futures.ThreadPoolExecutor to be used by the Server</span>
- <span class="sd"> to execute RPC handlers.</span>
- <span class="sd"> handlers: An optional list of GenericRpcHandlers used for executing RPCs.</span>
- <span class="sd"> More handlers may be added by calling add_generic_rpc_handlers any time</span>
- <span class="sd"> before the server is started.</span>
- <span class="sd"> interceptors: An optional list of ServerInterceptor objects that observe</span>
- <span class="sd"> and optionally manipulate the incoming RPCs before handing them over to</span>
- <span class="sd"> handlers. The interceptors are given control in the order they are</span>
- <span class="sd"> specified. This is an EXPERIMENTAL API.</span>
- <span class="sd"> options: An optional list of key-value pairs (channel args in gRPC runtime)</span>
- <span class="sd"> to configure the channel.</span>
- <span class="sd"> maximum_concurrent_rpcs: The maximum number of concurrent RPCs this server</span>
- <span class="sd"> will service before returning RESOURCE_EXHAUSTED status, or None to</span>
- <span class="sd"> indicate no limit.</span>
- <span class="sd"> Returns:</span>
- <span class="sd"> A Server object.</span>
- <span class="sd"> """</span>
- <span class="kn">from</span> <span class="nn">grpc</span> <span class="k">import</span> <span class="n">_server</span> <span class="c1"># pylint: disable=cyclic-import</span>
- <span class="k">return</span> <span class="n">_server</span><span class="o">.</span><span class="n">Server</span><span class="p">(</span><span class="n">thread_pool</span><span class="p">,</span> <span class="p">()</span> <span class="k">if</span> <span class="n">handlers</span> <span class="ow">is</span> <span class="kc">None</span> <span class="k">else</span> <span class="n">handlers</span><span class="p">,</span> <span class="p">()</span>
- <span class="k">if</span> <span class="n">interceptors</span> <span class="ow">is</span> <span class="kc">None</span> <span class="k">else</span> <span class="n">interceptors</span><span class="p">,</span> <span class="p">()</span> <span class="k">if</span>
- <span class="n">options</span> <span class="ow">is</span> <span class="kc">None</span> <span class="k">else</span> <span class="n">options</span><span class="p">,</span> <span class="n">maximum_concurrent_rpcs</span><span class="p">)</span></div>
- <span class="c1">################################### __all__ #################################</span>
- <span class="n">__all__</span> <span class="o">=</span> <span class="p">(</span>
- <span class="s1">'FutureTimeoutError'</span><span class="p">,</span> <span class="s1">'FutureCancelledError'</span><span class="p">,</span> <span class="s1">'Future'</span><span class="p">,</span>
- <span class="s1">'ChannelConnectivity'</span><span class="p">,</span> <span class="s1">'StatusCode'</span><span class="p">,</span> <span class="s1">'RpcError'</span><span class="p">,</span> <span class="s1">'RpcContext'</span><span class="p">,</span> <span class="s1">'Call'</span><span class="p">,</span>
- <span class="s1">'ChannelCredentials'</span><span class="p">,</span> <span class="s1">'CallCredentials'</span><span class="p">,</span> <span class="s1">'AuthMetadataContext'</span><span class="p">,</span>
- <span class="s1">'AuthMetadataPluginCallback'</span><span class="p">,</span> <span class="s1">'AuthMetadataPlugin'</span><span class="p">,</span> <span class="s1">'ClientCallDetails'</span><span class="p">,</span>
- <span class="s1">'ServerCertificateConfiguration'</span><span class="p">,</span> <span class="s1">'ServerCredentials'</span><span class="p">,</span>
- <span class="s1">'UnaryUnaryMultiCallable'</span><span class="p">,</span> <span class="s1">'UnaryStreamMultiCallable'</span><span class="p">,</span>
- <span class="s1">'StreamUnaryMultiCallable'</span><span class="p">,</span> <span class="s1">'StreamStreamMultiCallable'</span><span class="p">,</span>
- <span class="s1">'UnaryUnaryClientInterceptor'</span><span class="p">,</span> <span class="s1">'UnaryStreamClientInterceptor'</span><span class="p">,</span>
- <span class="s1">'StreamUnaryClientInterceptor'</span><span class="p">,</span> <span class="s1">'StreamStreamClientInterceptor'</span><span class="p">,</span> <span class="s1">'Channel'</span><span class="p">,</span>
- <span class="s1">'ServicerContext'</span><span class="p">,</span> <span class="s1">'RpcMethodHandler'</span><span class="p">,</span> <span class="s1">'HandlerCallDetails'</span><span class="p">,</span>
- <span class="s1">'GenericRpcHandler'</span><span class="p">,</span> <span class="s1">'ServiceRpcHandler'</span><span class="p">,</span> <span class="s1">'Server'</span><span class="p">,</span> <span class="s1">'ServerInterceptor'</span><span class="p">,</span>
- <span class="s1">'unary_unary_rpc_method_handler'</span><span class="p">,</span> <span class="s1">'unary_stream_rpc_method_handler'</span><span class="p">,</span>
- <span class="s1">'stream_unary_rpc_method_handler'</span><span class="p">,</span> <span class="s1">'stream_stream_rpc_method_handler'</span><span class="p">,</span>
- <span class="s1">'method_handlers_generic_handler'</span><span class="p">,</span> <span class="s1">'ssl_channel_credentials'</span><span class="p">,</span>
- <span class="s1">'metadata_call_credentials'</span><span class="p">,</span> <span class="s1">'access_token_call_credentials'</span><span class="p">,</span>
- <span class="s1">'composite_call_credentials'</span><span class="p">,</span> <span class="s1">'composite_channel_credentials'</span><span class="p">,</span>
- <span class="s1">'ssl_server_credentials'</span><span class="p">,</span> <span class="s1">'ssl_server_certificate_configuration'</span><span class="p">,</span>
- <span class="s1">'dynamic_ssl_server_credentials'</span><span class="p">,</span> <span class="s1">'channel_ready_future'</span><span class="p">,</span>
- <span class="s1">'insecure_channel'</span><span class="p">,</span> <span class="s1">'secure_channel'</span><span class="p">,</span> <span class="s1">'intercept_channel'</span><span class="p">,</span> <span class="s1">'server'</span><span class="p">,)</span>
- <span class="c1">############################### Extension Shims ################################</span>
- <span class="c1"># Here to maintain backwards compatibility; avoid using these in new code!</span>
- <span class="k">try</span><span class="p">:</span>
- <span class="kn">import</span> <span class="nn">grpc_tools</span>
- <span class="n">sys</span><span class="o">.</span><span class="n">modules</span><span class="o">.</span><span class="n">update</span><span class="p">({</span><span class="s1">'grpc.tools'</span><span class="p">:</span> <span class="n">grpc_tools</span><span class="p">})</span>
- <span class="k">except</span> <span class="ne">ImportError</span><span class="p">:</span>
- <span class="k">pass</span>
- <span class="k">try</span><span class="p">:</span>
- <span class="kn">import</span> <span class="nn">grpc_health</span>
- <span class="n">sys</span><span class="o">.</span><span class="n">modules</span><span class="o">.</span><span class="n">update</span><span class="p">({</span><span class="s1">'grpc.health'</span><span class="p">:</span> <span class="n">grpc_health</span><span class="p">})</span>
- <span class="k">except</span> <span class="ne">ImportError</span><span class="p">:</span>
- <span class="k">pass</span>
- <span class="k">try</span><span class="p">:</span>
- <span class="kn">import</span> <span class="nn">grpc_reflection</span>
- <span class="n">sys</span><span class="o">.</span><span class="n">modules</span><span class="o">.</span><span class="n">update</span><span class="p">({</span><span class="s1">'grpc.reflection'</span><span class="p">:</span> <span class="n">grpc_reflection</span><span class="p">})</span>
- <span class="k">except</span> <span class="ne">ImportError</span><span class="p">:</span>
- <span class="k">pass</span>
- </pre></div>
- </div>
- <div class="articleComments">
-
- </div>
- </div>
- <footer>
-
- <hr/>
- <div role="contentinfo">
- <p>
- © Copyright 2016, The gRPC Authors.
- </p>
- </div>
- Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
- </footer>
- </div>
- </div>
- </section>
- </div>
-
-
- <script type="text/javascript">
- var DOCUMENTATION_OPTIONS = {
- URL_ROOT:'../',
- VERSION:'1.8.0',
- COLLAPSE_INDEX:false,
- FILE_SUFFIX:'.html',
- HAS_SOURCE: true,
- SOURCELINK_SUFFIX: '.txt'
- };
- </script>
- <script type="text/javascript" src="../_static/jquery.js"></script>
- <script type="text/javascript" src="../_static/underscore.js"></script>
- <script type="text/javascript" src="../_static/doctools.js"></script>
-
-
-
- <script type="text/javascript" src="../_static/js/theme.js"></script>
-
-
-
- <script type="text/javascript">
- jQuery(function () {
- SphinxRtdTheme.StickyNav.enable();
- });
- </script>
-
- </body>
- </html>
|