Your IP : 3.138.134.77


Current Path : /usr/lib/python2.7/site-packages/google/protobuf/
Upload File :
Current File : //usr/lib/python2.7/site-packages/google/protobuf/text_format.pyc

�
Du�ac
@s+dZdZddlZddlZddlZejrBeZnddlm	Z	ddl
mZddl
mZddd	d
dgZ
e	j�e	j�e	j�e	j�fZejdej�Zejd
ej�Zeejjejjg�Zeddf�ZdZdefd��YZdefd��YZ de!fd��YZ"e#e#e#e#e$e#e$de$d�	Z%d�Z&de#e#e#e#e$e#e$e$d�	Z'de#e#e#e#e$e$d�Z(de#e#e#e#e$e$d�Z)d�Z*de!fd��YZ+e#e#e$d �Z,e#e#e$d!�Z-e#e#e$d"�Z.e#e#e$d#�Z/d$e!fd%��YZ0d&�Z1d'�Z2d(�Z3d)�Z4d*e!fd+��YZ5e5Z6d,�Z7d-�Z8d.�Z9d/�Z:d0�Z;d1�Z<e#e#d2�Z=e#e#d3�Z>e#e#d4�Z?e#d5�Z@d6�ZAd7�ZBd8�ZCdS(9sbContains routines for printing protocol messages in text format.

Simple usage example:

  # Create a proto object and serialize it to a text proto string.
  message = my_proto_pb2.MyMessage(foo='bar')
  text_proto = text_format.MessageToString(message)

  # Parse a text proto string.
  message = text_format.Parse(text_proto, my_proto_pb2.MyMessage())
s kenton@google.com (Kenton Varda)i����N(t
type_checkers(t
descriptor(t
text_encodingtMessageToStringtPrintMessaget
PrintFieldtPrintFieldValuetMerges-?inf(?:inity)?f?snanf?t't"sgoogle.protobuf.AnytErrorcBseZdZRS(s'Top-level module error for text_format.(t__name__t
__module__t__doc__(((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR
Ist
ParseErrorcBs2eZdZdddd�Zd�Zd�ZRS(s3Thrown in case of text parsing or tokenizing error.cCs�|dk	r[|dk	r[t|�}|dk	rF|dj|�7}ndj||�}n|dk	r�tt|�j|�ntt|�j�||_||_dS(Ns:{0}s	{0} : {1}(tNonetstrtformattsuperRt__init__t_linet_column(tselftmessagetlinetcolumntloc((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyRPs	cCs|jS(N(R(R((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pytGetLine]scCs|jS(N(R(R((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyt	GetColumn`sN(RRR
RRRR(((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyRMs
	t
TextWritercBs,eZd�Zd�Zd�Zd�ZRS(cCs.tjrtj�|_ntj�|_dS(N(tsixtPY2tiotBytesIOt_writertStringIO(Rtas_utf8((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyRfs	cCs@tjr0t|tj�r0|jd�}q0n|jj|�S(Nsutf-8(RRt
isinstancet	text_typetencodeR"twrite(Rtval((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR(ls	cCs
|jj�S(N(R"tclose(R((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR*rscCs
|jj�S(N(R"tgetvalue(R((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR+us(RRRR(R*R+(((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyRds			ic

Csjt|�}
t|
|||||||||	�
}|j|�|
j�}|
j�|rf|j�S|S(s�Convert protobuf message to text format.

  Floating point values can be formatted compactly with 15 digits of
  precision (which is the most that IEEE 754 "double" can guarantee)
  using float_format='.15g'. To ensure that converting to text and back to a
  proto will result in an identical value, float_format='.17g' should be used.

  Args:
    message: The protocol buffers message.
    as_utf8: Produce text output in UTF8 format.
    as_one_line: Don't introduce newlines between fields.
    pointy_brackets: If True, use angle brackets instead of curly braces for
      nesting.
    use_index_order: If True, print fields of a proto message using the order
      defined in source code instead of the field number. By default, use the
      field number order.
    float_format: If set, use this to specify floating point number formatting
      (per the "Format Specification Mini-Language"); otherwise, str() is used.
    use_field_number: If True, print field numbers instead of names.
    descriptor_pool: A DescriptorPool used to resolve Any types.
    indent: The indent level, in terms of spaces, for pretty print.
    message_formatter: A function(message, indent, as_one_line): unicode|None
      to custom format selected sub-messages (usually based on message type).
      Use to pretty print parts of the protobuf for easier diffing.

  Returns:
    A string of the text formatted protocol buffer message.
  (Rt_PrinterRR+R*trstrip(
RR$tas_one_linetpointy_bracketstuse_index_ordertfloat_formattuse_field_numbertdescriptor_pooltindenttmessage_formattertouttprintertresult((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyRys&	


cCs1|jtjjko0|jjo0|jj�jS(N(ttypeRtFieldDescriptortTYPE_MESSAGEtmessage_typethas_optionst
GetOptionst	map_entry(tfield((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyt_IsMapEntry�scCs8t|||||||||	|
�
}|j|�dS(N(R,R(RR6R4R$R.R/R0R1R2R3R5R7((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�s	c
	Cs5t||||||||	�}
|
j||�dS(s%Print a single field name/value pair.N(R,R(R@tvalueR6R4R$R.R/R0R1R5R7((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�sc
	Cs5t||||||||	�}
|
j||�dS(s0Print a single field value (not including name).N(R,R(R@RBR6R4R$R.R/R0R1R5R7((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�scCs�|dkr+ddlm}|j�}nddlm}|j�}y|j|�}Wntk
rndSX|j|�}|�S(s!Returns a protobuf message instance.

  Args:
    type_name: Fully-qualified protobuf  message type name string.
    descriptor_pool: DescriptorPool instance.

  Returns:
    A Message instance of type matching type_name, or None if the a Descriptor
    wasn't found matching type_name.
  i����(R3(tsymbol_databaseN(Rtgoogle.protobufR3tDefaultRCtFindMessageTypeByNametKeyErrortGetPrototype(t	type_nameR3tpool_modRCtdatabasetmessage_descriptorR<((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyt_BuildMessageFromTypeName�s
R,c
BsheZdZdeeeed	ed	d	d�	Zd�Zd�Zd�Zd�Z	d�Z
d�ZRS(
s)Text format printer for protocol message.icCs^||_||_||_||_||_||_||_||_|	|_|
|_	dS(sZInitialize the Printer.

    Floating point values can be formatted compactly with 15 digits of
    precision (which is the most that IEEE 754 "double" can guarantee)
    using float_format='.15g'. To ensure that converting to text and back to a
    proto will result in an identical value, float_format='.17g' should be used.

    Args:
      out: To record the text format result.
      indent: The indent level for pretty print.
      as_utf8: Produce text output in UTF8 format.
      as_one_line: Don't introduce newlines between fields.
      pointy_brackets: If True, use angle brackets instead of curly braces for
        nesting.
      use_index_order: If True, print fields of a proto message using the order
        defined in source code instead of the field number. By default, use the
        field number order.
      float_format: If set, use this to specify floating point number formatting
        (per the "Format Specification Mini-Language"); otherwise, str() is
        used.
      use_field_number: If True, print field numbers instead of names.
      descriptor_pool: A DescriptorPool used to resolve Any types.
      message_formatter: A function(message, indent, as_one_line): unicode|None
        to custom format selected sub-messages (usually based on message type).
        Use to pretty print parts of the protobuf for easier diffing.
    N(
R6R4R$R.R/R0R1R2R3R5(RR6R4R$R.R/R0R1R2R3R5((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�s%									cCs�t|j�|j�}|r�|j|j�|jjd|jd|jf�|j	|�|jj|j
rwdnd�tStSdS(s5Serializes if message is a google.protobuf.Any field.s%s[%s]t s
N(
RMtTypeNameR3tMergeFromStringRBR6R(R4ttype_urlt_PrintMessageFieldValueR.tTruetFalse(RRtpacked_message((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyt_TryPrintAsAnyMessage.s$
cCsu|j||j|j�}|dkr+tS|j}|jd|j�|j|�|j|jrjdnd�tS(NRNs
(R5R4R.RRTR6R(RS(RRt	formattedR6((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyt_TryCustomFormatMessage;s	
cCs%|jr|j|�rdS|jjtkrA|j|�rAdS|j�}|jrl|jdd��nx�|D]�\}}t	|�r�x�t
|�D]5}|j�d|d||�}|j||�q�Wqs|j
tjjkr
x1|D]}|j||�q�Wqs|j||�qsWdS(seConvert protobuf message to text format.

    Args:
      message: The protocol buffers message.
    NtkeycSs|djS(Ni(tindex(tx((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyt<lambda>StRB(R5RXt
DESCRIPTORt	full_namet_ANY_FULL_TYPE_NAMERVt
ListFieldsR0tsortRAtsortedt
GetEntryClassRtlabelRR:tLABEL_REPEATED(RRtfieldsR@RBRYtentry_submsgtelement((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyRFs"	
cCsa|j}|jd|j�|jr?|jt|j��n�|jr�|jd�|jj�j	r�|j
tjj
kr�|jtjjkr�|j|jj�n|j|j�|jd�n;|j
tjjkr�|j|jj�n|j|j�|jtjjkr'|jd�n|j||�|jrP|jd�n
|jd�dS(s%Print a single field name/value pair.RNt[t]s: s
N(R6R(R4R2Rtnumbertis_extensiontcontaining_typeR>tmessage_set_wire_formatR9RR:R;RetLABEL_OPTIONALR<R_t
TYPE_GROUPtnametcpp_typetCPPTYPE_MESSAGERR.(RR@RBR6((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyRds*			
	cCs�|jrd}d}nd}d}|jra|jjd|�|j|�|jj|�nZ|jjd|�|jd7_|j|�|jd8_|jjd|j|�dS(	Nt<t>t{t}s %s s %s
iRN(R/R.R6R(RR4(RRBtopenbtcloseb((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyRR�s			

cCs�|j}|jtjjkr.|j|�n�|jtjjkr�|jjj	|d�}|dk	rz|j|j�q�|jt
|��n'|jtjjkr,|jd�t|tj�r�|jd�}n|}|jtjjkr�t}n	|j}|jtj||��|jd�n�|jtjjkrg|rW|jd�q�|jd�nP|jtkr�|jdk	r�|jdj|j|��n|jt
|��dS(s�Print a single field value (not including name).

    For repeated fields, the value should be a single element.

    Args:
      field: The descriptor of the field to be printed.
      value: The value of the field.
    s"sutf-8ttruetfalses{1:{0}}N(R6RsRR:RtRRtCPPTYPE_ENUMt	enum_typetvalues_by_numbertgetRR(RrRtCPPTYPE_STRINGR%RR&R'R9t
TYPE_BYTESRTR$RtCEscapetCPPTYPE_BOOLt_FLOAT_TYPESR1R(RR@RBR6t
enum_valuet	out_valuetout_as_utf8((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�s2		
		N(RRR
RTRRRVRXRRRRR(((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR,�s &	
			!	cCs^t|t�s<tjr*|jd�}q<|jd�}nt|jd�|||d|�S(s�Parses a text representation of a protocol message into a message.

  NOTE: for historical reasons this function does not clear the input
  message. This is different from what the binary msg.ParseFrom(...) does.

  Example
    a = MyProto()
    a.repeated_field.append('test')
    b = MyProto()

    text_format.Parse(repr(a), b)
    text_format.Parse(repr(a), b) # repeated_field contains ["test", "test"]

    # Binary version:
    b.ParseFromString(a.SerializeToString()) # repeated_field is now "test"

  Caller is responsible for clearing the message as needed.

  Args:
    text: Message text representation.
    message: A protocol buffer message to merge into.
    allow_unknown_extension: if True, skip over missing extensions and keep
      parsing
    allow_field_number: if True, both field number and field name are allowed.
    descriptor_pool: A DescriptorPool used to resolve Any types.

  Returns:
    The same message passed as argument.

  Raises:
    ParseError: On text parsing problems.
  sutf-8s
R3(R%RRtPY3tdecodeR't
ParseLinestsplit(ttextRtallow_unknown_extensiontallow_field_numberR3((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pytParse�s%	cCs^t|t�s<tjr*|jd�}q<|jd�}nt|jd�|||d|�S(s^Parses a text representation of a protocol message into a message.

  Like Parse(), but allows repeated values for a non-repeated field, and uses
  the last one.

  Args:
    text: Message text representation.
    message: A protocol buffer message to merge into.
    allow_unknown_extension: if True, skip over missing extensions and keep
      parsing
    allow_field_number: if True, both field number and field name are allowed.
    descriptor_pool: A DescriptorPool used to resolve Any types.

  Returns:
    The same message passed as argument.

  Raises:
    ParseError: On text parsing problems.
  sutf-8s
R3(R%RRR�R�R't
MergeLinesR�(R�RR�R�R3((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�s	cCs%t||d|�}|j||�S(sParses a text representation of a protocol message into a message.

  Args:
    lines: An iterable of lines of a message's text representation.
    message: A protocol buffer message to merge into.
    allow_unknown_extension: if True, skip over missing extensions and keep
      parsing
    allow_field_number: if True, both field number and field name are allowed.
    descriptor_pool: A DescriptorPool used to resolve Any types.

  Returns:
    The same message passed as argument.

  Raises:
    ParseError: On text parsing problems.
  R3(t_ParserR�(tlinesRR�R�R3tparser((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�s	cCs%t||d|�}|j||�S(sParses a text representation of a protocol message into a message.

  Args:
    lines: An iterable of lines of a message's text representation.
    message: A protocol buffer message to merge into.
    allow_unknown_extension: if True, skip over missing extensions and keep
      parsing
    allow_field_number: if True, both field number and field name are allowed.
    descriptor_pool: A DescriptorPool used to resolve Any types.

  Returns:
    The same message passed as argument.

  Raises:
    ParseError: On text parsing problems.
  R3(R�R�(R�RR�R�R3R�((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�3s	R�cBs�eZdZeedd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zd�Zd	�Z
ed
��Zd�ZRS(
s(Text format parser for protocol message.cCs||_||_||_dS(N(R�R�R3(RR�R�R3((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyRQs		cCs:t|t�s!|jd�}n|j|jd�|�S(sBParses a text representation of a protocol message into a message.sutf-8s
(R%RR�R�R�(RR�R((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pytParseFromStringYscCst|_|j||�|S(sBParses a text representation of a protocol message into a message.(RTt_allow_multiple_scalarst
_ParseOrMerge(RR�R((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�_s	cCs|j|jd�|�S(sBMerges a text representation of a protocol message into a message.s
(t_MergeLinesR�(RR�R((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyRPescCst|_|j||�|S(sBMerges a text representation of a protocol message into a message.(RSR�R�(RR�R((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�is	cCs3t|�}x |j�s.|j||�qWdS(s�Converts a text representation of a protocol message into a message.

    Args:
      lines: Lines of a message's text representation.
      message: A protocol buffer message to merge into.

    Raises:
      ParseError: On text parsing problems.
    N(t	TokenizertAtEndt_MergeField(RR�Rt	tokenizer((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�os
c	Cs�|j}|jd�r�|j�g}x&|jd�rO|j|j��q*Wdj|�}|js�|jd|j��n|jj	|�}|s�|j
r�d}q�|jd|��n.||jkr�|jd||jf��n|j
d�n(|j�}|jro|j�rot|tt�}|jj|d�}|r|jr|jj|�}qn�|jj|d�}|s�|jj|j�d�}|r�|jtjjkr�d}q�n|r|jtjjkr|jj|krd}n|s'|jd|j|f��n|r\|jr�|jr�|j |jj�}|dk	r�||jkr�|jd|j||jj|jf��q�n|j!tjj"kr�|jd	�|j#}n|j
d	�|j$}|j%tjj&krI|jd�rIxMtrE||||�|jd�r5Pn|j
d
�qWqu||||�n|j
skt'�t(|�|jd
�s�|jd�ndS(
s�Merges a single protocol message field into a message.

    Args:
      tokenizer: A tokenizer to parse the field name and values.
      message: A protocol message to record the data.

    Raises:
      ParseError: In case of text parsing problems.
    Rjt.s+Message type "%s" does not have extensions.s�Extension "%s" not registered. Did you import the _pb2 module which defines it? If you are trying to place the extension in the MessageSet field of another message that is in an Any or MessageSet field, that message's _pb2 module must be imported as wells1Extension "%s" does not extend message type "%s".Rks*Message type "%s" has no field named "%s".sbField "%s" is specified along with field "%s", another member of oneof "%s" for message type "%s".t:t,t;N()R^t
TryConsumetConsumeIdentifiertappendtjoint
is_extendabletParseErrorPreviousTokenR_t
Extensionst_FindExtensionByNameR�RRntConsumetConsumeIdentifierOrNumberR�tisdigittParseIntegerRStfields_by_numberR�t_FindExtensionByNumbertfields_by_nametlowerR9RR:RqR<RrR�tcontaining_oneoft
WhichOneofRsRtt_MergeMessageFieldt_MergeScalarFieldReRftAssertionErrort_SkipFieldContents(	RR�RRLRrR@Rltwhich_oneoftmerger((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�}s�
				
	

		
cCs�|j�g}|jd�|j|j��|jd�|j|j��|jd�|j�g}x&|jd�r�|j|j��qnWdj|�dj|�fS(sBConsumes a google.protobuf.Any type URL and returns the type name.R�t/(R�R�R�R�R�(RR�tprefixRr((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyt_ConsumeAnyTypeUrl�s


cCs�t|�}|jd�r$d}n|jd�d}|jjtkr�|jd�r�|j|�\}}|jd�|jd�|jd�r�d}n|jd�d}t||j�}	|	s�t	d|��nxH|j|�s'|j
�r|jd	|f��n|j||	�q�W|j
tjjkrXt||j�j�}
nt||j�}
|
j|	d
|�n�|j
tjjkr�|jr�|j|j�}q(|r�t||j�j��}q(t||j�j�}n5|jr|j|}nt||j�}|j�xH|j|�sr|j
�r_|jd	|f��n|j||�q+W|r�|jjdj}|tjjkr�t||j�|j}
|
j|j�q�|jt||j�|j<ndS(
s"Merges a single scalar field into a message.

    Args:
      tokenizer: A tokenizer to parse the field value.
      message: The message of which field is a member.
      field: The descriptor of the field to be merged.

    Raises:
      ParseError: In case of text parsing problems.
    RuRvRwRxRjRkR�s$Type %s not found in descriptor poolsExpected "%s".ttype_url_prefixRBN(RAR�R�R<R_R`R�RMR3RR�R�R�ReRR:RftgetattrRrtaddtPackRmR�RdtSetInParentR�RsRtRYt	MergeFromRB(RR�RR@tis_map_entryt	end_tokenR�tpacked_type_nametexpanded_any_end_tokentexpanded_any_sub_messagetany_messagetsub_messaget
value_cpptypeRB((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR��sb	


	

	
		
cCs%|j}t|d�o$|jdkS(Ntsyntaxtproto3(R^thasattrR�(RRL((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyt_IsProto3SyntaxAs	cCs�|j}d}|jtjjtjjtjjfkrHt|�}no|jtjj	tjj
tjjfkr�t|�}n6|jtjj
tjjfkr�t|�}n|jtjjtjjfkr�t|�}n�|jtjjtjjfkr|j�}n�|jtjjkr5|j�}n�|jtjjkrY|j�}n^|jtjjkr}|j�}n:|jtjjkr�|j|�}ntd|j��|jtjj kr|j!r�|j"|j#|�q�t$||j%�j#|�n�|j&|�}|j!ru|j're|re|j(|�re|j)d|j*j+|j+f��q�||j"|<nZ|j'r�|r�|j,|j%�r�|j)d|j*j+|j%f��nt-||j%|�dS(sHMerges a single scalar field into a message.

    Args:
      tokenizer: A tokenizer to parse the field value.
      message: A protocol message to record the data.
      field: The descriptor of the field to be merged.

    Raises:
      ParseError: In case of text parsing problems.
      RuntimeError: On runtime errors.
    sUnknown field type %ds;Message type "%s" should not have multiple "%s" extensions.s7Message type "%s" should not have multiple "%s" fields.N(.R�RR9RR:t
TYPE_INT32tTYPE_SINT32t
TYPE_SFIXED32t
_ConsumeInt32t
TYPE_INT64tTYPE_SINT64t
TYPE_SFIXED64t
_ConsumeInt64tTYPE_UINT32tTYPE_FIXED32t_ConsumeUint32tTYPE_UINT64tTYPE_FIXED64t_ConsumeUint64t
TYPE_FLOATtTYPE_DOUBLEtConsumeFloatt	TYPE_BOOLtConsumeBooltTYPE_STRINGt
ConsumeStringR�tConsumeByteStringt	TYPE_ENUMtConsumeEnumtRuntimeErrorReRfRmR�R�R�RrR�R�tHasExtensionR�R^R_tHasFieldtsetattr(RR�RR@t_RBtcan_check_presence((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�Gs\					N(RRR
RTRRR�R�RPR�R�R�R�R�tstaticmethodR�R�(((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�Ns						m		HcCsJ|jd�r<|jd�r<|jd�r<t|�n
t|�dS(s}Skips over contents (value or message) of a field.

  Args:
    tokenizer: A tokenizer to parse the field name and values.
  R�RwRuN(R�t	LookingAtt_SkipFieldValuet_SkipFieldMessage(R�((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR��s
cCs�|jd�rI|j�x|jd�r8|j�qW|jd�n
|j�t|�|jd�s||jd�ndS(s�Skips over a complete field (name and value/message).

  Args:
    tokenizer: A tokenizer to parse the field name and values.
  RjR�RkR�R�N(R�R�R�R�(R�((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyt
_SkipField�s


cCsm|jd�rd}n|jd�d}x.|jd�r[|jd�r[t|�q.W|j|�dS(sfSkips over a field message.

  Args:
    tokenizer: A tokenizer to parse the field name and values.
  RuRvRwRxN(R�R�R�R�(R�t	delimiter((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR��s	
#cCsq|j�r#x|j�rqWdS|j�rmt|�rmt|�rm|j�rmtd|j��ndS(s�Skips over a field value.

  Args:
    tokenizer: A tokenizer to parse the field name and values.

  Raises:
    ParseError: In case an invalid field value is found.
  NsInvalid field value: (tTryConsumeByteStringtTryConsumeIdentifiert_TryConsumeInt64t_TryConsumeUint64tTryConsumeFloatRttoken(R�((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR��s

R�cBs�eZdZejd�Zejdej�Zejdej�Zejdj	ddgge
D]Zdjde�^qa��Z
ejd	�Zejd
�Zed�Zd�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zed�Z d�Z!d�Z"d�Z#d�Z$d�Z%d�Z&d �Z'd!�Z(d"�Z)d#�Z*d$�Z+d%�Z,RS(&s�Protocol buffer text representation tokenizer.

  This class handles the lower level string parsing by splitting it into
  meaningful tokens.

  It was directly ported from the Java protocol buffer API.
  s\s+s	(\s*#.*$)s(\s|(#.*$))+t|s[a-zA-Z_][0-9a-zA-Z_+-]*s#([0-9+-]|(\.[0-9]))[0-9a-zA-Z_.+-]*s!{qt}([^{qt}\n\\]|\\.)*({qt}|\\?$)tqts
[^\d\W]\w*s\w+cCs�d|_d|_d|_d|_d|_t|�|_d|_d|_	d|_
t|_||_
|rx|jp~|j|_|j�|j�dS(Nii����R](t	_positionRRRt_token_startR�titert_linest
_current_linet_previous_linet_previous_columnRSt_more_linest_skip_commentst_WHITESPACE_OR_COMMENTt_WHITESPACEt_whitespace_patternt_SkipWhitespacet	NextToken(RR�t
skip_comments((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�s										
cCs
|j|kS(N(R�(RR�((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�scCs|jS(s^Checks the end of the text was reached.

    Returns:
      True iff the end was reached.
    (R�(R((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�
scCsxxqt|j�|jkrsyt|j�|_Wn$tk
rWd|_t|_dSX|jd7_d|_qWdS(NR]ii(	tlenR�RtnextR�t
StopIterationRTRR(R((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyt_PopLines
		cCsdx]tr_|j�|jj|j|j�}|s8Pnt|jd��}|j|7_qWdS(Ni(RSRRtmatchR�RR	tgroup(RR
tlength((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyRs	
cCs!|j|kr|j�tStS(s�Tries to consume a given piece of text.

    Args:
      token: Text to consume.

    Returns:
      True iff the text was consumed.
    (R�RRSRT(RR�((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�'s	
cCs)|j|�s%|jd|��ndS(s�Consumes a piece of text.

    Args:
      token: Text to consume.

    Raises:
      ParseError: If the text couldn't be consumed.
    sExpected "%s".N(R�R(RR�((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�5s	cCs;|j}|jj|�s-|jd��n|j�|S(NsExpected comment.(R�t_COMMENTR
RR(RR8((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pytConsumeCommentAs
	
cCsS|jdko|jdk}|j}|j�}|j|koF|}||fS(sCConsumes a comment, returns a 2-tuple (trailing bool, comment str).i(RRR�R(Rtjust_startedtbefore_parsingtcommentttrailing((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pytConsumeCommentOrTrailingCommentHs	cCs+y|j�tSWntk
r&tSXdS(N(R�RSRRT(R((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�Xs


cCs;|j}|jj|�s-|jd��n|j�|S(s�Consumes protocol message field identifier.

    Returns:
      Identifier string.

    Raises:
      ParseError: If an identifier couldn't be consumed.
    sExpected identifier.(R�t_IDENTIFIERR
RR(RR8((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�_s
		
cCs+y|j�tSWntk
r&tSXdS(N(R�RSRRT(R((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pytTryConsumeIdentifierOrNumberns


cCs?|j}|jj|�s1|jd|��n|j�|S(s�Consumes protocol message field identifier.

    Returns:
      Identifier string.

    Raises:
      ParseError: If an identifier couldn't be consumed.
    s&Expected identifier or number, got %s.(R�t_IDENTIFIER_OR_NUMBERR
RR(RR8((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�us
		
cCs+y|j�tSWntk
r&tSXdS(N(tConsumeIntegerRSRRT(R((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pytTryConsumeInteger�s


cCsRyt|jd|�}Wn(tk
rC}|jt|���nX|j�|S(s�Consumes an integer number.

    Args:
      is_long: True if the value should be returned as a long integer.
    Returns:
      The integer parsed.

    Raises:
      ParseError: If an integer couldn't be consumed.
    tis_long(t_ParseAbstractIntegerR�t
ValueErrorRRR(RRR8te((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�s
cCs+y|j�tSWntk
r&tSXdS(N(R�RSRRT(R((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR��s


cCsLyt|j�}Wn(tk
r=}|jt|���nX|j�|S(s�Consumes an floating point number.

    Returns:
      The number parsed.

    Raises:
      ParseError: If a floating point number couldn't be consumed.
    (t
ParseFloatR�RRRR(RR8R((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR��s	
cCsLyt|j�}Wn(tk
r=}|jt|���nX|j�|S(s�Consumes a boolean value.

    Returns:
      The bool parsed.

    Raises:
      ParseError: If a boolean value couldn't be consumed.
    (t	ParseBoolR�RRRR(RR8R((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR��s	
cCs+y|j�tSWntk
r&tSXdS(N(R�RSRRT(R((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR��s


cCsI|j�}ytj|d�SWn"tk
rD}|j|��nXdS(s�Consumes a string value.

    Returns:
      The string parsed.

    Raises:
      ParseError: If a string value couldn't be consumed.
    sutf-8N(R�RR&tUnicodeDecodeErrort_StringParseError(Rt	the_bytesR((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR��s
	cCsR|j�g}x3|jrD|jdtkrD|j|j��qWdj|�S(s�Consumes a byte array value.

    Returns:
      The array parsed (as a string).

    Raises:
      ParseError: If a byte array value couldn't be consumed.
    iR](t_ConsumeSingleByteStringR�t_QUOTESR�R�(Rtthe_list((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR��s	cCs�|j}t|�dks+|dtkrD|jd|f��nt|�dksj|d|dkr�|jd|f��nytj|dd!�}Wn(tk
r�}|jt|���nX|j�|S(sOConsume one token of a string literal.

    String literals (whether bytes or text) can come in multiple adjacent
    tokens which are automatically concatenated, like in C or Python.  This
    method only consumes one token.

    Returns:
      The token parsed.
    Raises:
      ParseError: When the wrong format data is found.
    iisExpected string but found: %rii����sString missing ending quote: %r(	R�R	R&RRt	CUnescapeRRR(RR�R8R((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR%�s	"&
cCsOyt||j�}Wn(tk
r@}|jt|���nX|j�|S(N(t	ParseEnumR�RRRR(RR@R8R((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�s
cCst||jd|jd�S(s�Creates and *returns* a ParseError for the previously read token.

    Args:
      message: A message to set for the exception.

    Returns:
      A ParseError instance.
    i(RR�R(RR((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�s	cCst||jd|jd�S(s9Creates and *returns* a ParseError for the current token.i(RRR(RR((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyRscCs|jdt|��S(NsCouldn't parse string: (RR(RR((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR#scCs�|j|_|j|_|jt|j�7_|j�|jsPd|_dS|jj	|j
|j�}|r�|jr�|jj	|j
|j�}n|r�|j
d�}||_n|j
|j|_dS(s Reads the next meaningful token.R]Ni(RR�RRR	R�RRt_TOKENR
R�RRR(RR
R�((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyRs
		(-RRR
tretcompileRt	MULTILINERRR�R&tmarkRR*RRRSRR�R�RRR�R�RRR�R�RR�RRTRR�R�R�R�R�R�R%R�R�RR#R(((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR��sJ,																									cCst|dtdt�S(s�Consumes a signed 32bit integer number from tokenizer.

  Args:
    tokenizer: A tokenizer used to parse the number.

  Returns:
    The integer parsed.

  Raises:
    ParseError: If a signed 32bit integer couldn't be consumed.
  t	is_signedR(t_ConsumeIntegerRSRT(R�((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�8scCst|dtdt�S(s�Consumes an unsigned 32bit integer number from tokenizer.

  Args:
    tokenizer: A tokenizer used to parse the number.

  Returns:
    The integer parsed.

  Raises:
    ParseError: If an unsigned 32bit integer couldn't be consumed.
  R/R(R0RT(R�((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�GscCs+yt|�tSWntk
r&tSXdS(N(R�RSRRT(R�((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�Vs


cCst|dtdt�S(s�Consumes a signed 32bit integer number from tokenizer.

  Args:
    tokenizer: A tokenizer used to parse the number.

  Returns:
    The integer parsed.

  Raises:
    ParseError: If a signed 32bit integer couldn't be consumed.
  R/R(R0RS(R�((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�^scCs+yt|�tSWntk
r&tSXdS(N(R�RSRRT(R�((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�ms


cCst|dtdt�S(s�Consumes an unsigned 64bit integer number from tokenizer.

  Args:
    tokenizer: A tokenizer used to parse the number.

  Returns:
    The integer parsed.

  Raises:
    ParseError: If an unsigned 64bit integer couldn't be consumed.
  R/R(R0RTRS(R�((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�uscCs7yt|d|d|�tSWntk
r2tSXdS(NR/R(R0RSRRT(R�R/R((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyt_TryConsumeInteger�s

cCsXyt|jd|d|�}Wn(tk
rI}|jt|���nX|j�|S(sUConsumes an integer number from tokenizer.

  Args:
    tokenizer: A tokenizer used to parse the number.
    is_signed: True if a signed integer must be parsed.
    is_long: True if a long integer must be parsed.

  Returns:
    The integer parsed.

  Raises:
    ParseError: If an integer with given characteristics couldn't be consumed.
  R/R(R�R�RRRR(R�R/RR8R((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR0�s
cCsAt|d|�}tdt|�t|�}|j|�|S(sParses an integer.

  Args:
    text: The text to parse.
    is_signed: True if a signed integer must be parsed.
    is_long: True if a long integer must be parsed.

  Returns:
    The integer value.

  Raises:
    ValueError: Thrown Iff the text is not a valid integer.
  Ri(Rt_INTEGER_CHECKERStintt
CheckValue(R�R/RR8tchecker((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR��s
cCsLy$|rt|d�St|d�SWn!tk
rGtd|��nXdS(sParses an integer without checking size/signedness.

  Args:
    text: The text to parse.
    is_long: True if the value should be returned as a long integer.

  Returns:
    The integer value.

  Raises:
    ValueError: Thrown Iff the text is not a valid integer.
  isCouldn't parse integer: %sN(tlongR3R(R�R((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�s

cCs�yt|�SWn�tk
r�tj|�rT|ddkrGtd�Std�Sq�tj|�rmtd�Syt|jd��SWq�tk
r�td|��q�XnXdS(	s�Parse a floating point number.

  Args:
    text: Text to parse.

  Returns:
    The number parsed.

  Raises:
    ValueError: If a floating point number couldn't be parsed.
  it-s-inftinftnantfsCouldn't parse float: %sN(tfloatRt_FLOAT_INFINITYR
t
_FLOAT_NANR-(R�((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR �s




cCs0|dkrtS|dkr tStd	��d
S(
s�Parse a boolean value.

  Args:
    text: Text to parse.

  Returns:
    Boolean values parsed

  Raises:
    ValueError: If text is not a valid boolean.
  R{ttt1RSR|R:t0RTsExpected "true" or "false".N(R{R>R?RS(R|R:R@RT(RSRTR(R�((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR!�s
cCs�|j}yt|d�}WnNtk
rl|jj|d�}|dkr�td|j|f��q�niXt|jd�r�|jj	dkr�|Sn|j
j|d�}|dkr�td|j|f��n|jS(s&Parse an enum value.

  The value can be specified by a number (the enum value), or by
  a string literal (the enum name).

  Args:
    field: Enum field descriptor.
    value: String value.

  Returns:
    Enum value number.

  Raises:
    ValueError: If the enum value could not be parsed.
  is%Enum type "%s" has no value named %s.R�R�s+Enum type "%s" has no value with number %d.N(R~R3Rtvalues_by_nameR�RR_R�tfileR�RRl(R@RBtenum_descriptorRlR�((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR)s 	
(DR
t
__author__R R+RR�R3R6tgoogle.protobuf.internalRRDRRt__all__tUint32ValueCheckertInt32ValueCheckertUint64ValueCheckertInt64ValueCheckerR2R,t
IGNORECASER<R=t	frozensetR:t
CPPTYPE_FLOATtCPPTYPE_DOUBLER�R&R`t	ExceptionR
RtobjectRRTRRRARRRRMR,R�RR�R�R�R�R�R�R�R�t
_TokenizerR�R�R�R�R�R�R1R0R�RR R!R)(((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyt<module>)s�						)	

	�/#�@				�V							 	

?>