Current File : //proc/self/root/usr/lib/python3.12/__pycache__/textwrap.cpython-312.pyc
�

�4hM����dZddlZgd�ZdZGd�d�Zdd�Zdd�Zd	�Zejd
ej�Z
ejdej�Zd�Zdd
�Z
edk(reed��yy)zText wrapping and filling.
�N)�TextWrapper�wrap�fill�dedent�indent�shortenz	

 c��eZdZdZejeee�ed��Z	dZ
dZdeje�zZdeddzZej d	e
eeed
�zej"�Z[
[[ej dez�Z[ej d�Z										ddd
d�d�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zy)ra	
    Object for wrapping/filling text.  The public interface consists of
    the wrap() and fill() methods; the other methods are just there for
    subclasses to override in order to tweak the default behaviour.
    If you want to completely replace the main wrapping algorithm,
    you'll probably have to override _wrap_chunks().

    Several instance attributes control various aspects of wrapping:
      width (default: 70)
        the maximum width of wrapped lines (unless break_long_words
        is false)
      initial_indent (default: "")
        string that will be prepended to the first line of wrapped
        output.  Counts towards the line's width.
      subsequent_indent (default: "")
        string that will be prepended to all lines save the first
        of wrapped output; also counts towards each line's width.
      expand_tabs (default: true)
        Expand tabs in input text to spaces before further processing.
        Each tab will become 0 .. 'tabsize' spaces, depending on its position
        in its line.  If false, each tab is treated as a single character.
      tabsize (default: 8)
        Expand tabs in input text to 0 .. 'tabsize' spaces, unless
        'expand_tabs' is false.
      replace_whitespace (default: true)
        Replace all whitespace characters in the input text by spaces
        after tab expansion.  Note that if expand_tabs is false and
        replace_whitespace is true, every tab will be converted to a
        single space!
      fix_sentence_endings (default: false)
        Ensure that sentence-ending punctuation is always followed
        by two spaces.  Off by default because the algorithm is
        (unavoidably) imperfect.
      break_long_words (default: true)
        Break words longer than 'width'.  If false, those words will not
        be broken, and some lines might be longer than 'width'.
      break_on_hyphens (default: true)
        Allow breaking hyphenated words. If true, wrapping will occur
        preferably on whitespaces and right after hyphens part of
        compound words.
      drop_whitespace (default: true)
        Drop leading and trailing whitespace from lines.
      max_lines (default: None)
        Truncate wrapped lines.
      placeholder (default: ' [...]')
        Append to the last line of truncated text.
    � z[\w!"\'&.,?]z[^\d\W]z[%s]z[^�Na�
        ( # any whitespace
          %(ws)s+
        | # em-dash between words
          (?<=%(wp)s) -{2,} (?=\w)
        | # word, possibly hyphenated
          %(nws)s+? (?:
            # hyphenated word
              -(?: (?<=%(lt)s{2}-) | (?<=%(lt)s-%(lt)s-))
              (?= %(lt)s -? %(lt)s)
            | # end of word
              (?=%(ws)s|\Z)
            | # em-dash
              (?<=%(wp)s) (?=-{2,}\w)
            )
        ))�wp�lt�ws�nwsz(%s+)z[a-z][\.\!\?][\"\']?\Zz [...])�	max_lines�placeholderc��||_||_||_||_||_||_||_||_|	|_|
|_	||_
||_y�N)�width�initial_indent�subsequent_indent�expand_tabs�replace_whitespace�fix_sentence_endings�break_long_words�drop_whitespace�break_on_hyphens�tabsizerr)
�selfrrrrrrrrrrrrs
             �/usr/lib/python3.12/textwrap.py�__init__zTextWrapper.__init__psa����
�,���!2���&���"4���$8��!� 0���.��� 0������"���&���c��|jr|j|j�}|jr|j	|j
�}|S)z�_munge_whitespace(text : string) -> string

        Munge whitespace in text: expand tabs and convert all other
        whitespace characters to spaces.  Eg. " foo\tbar\n\nbaz"
        becomes " foo    bar  baz".
        )r�
expandtabsrr�	translate�unicode_whitespace_trans�r�texts  r�_munge_whitespacezTextWrapper._munge_whitespace�sA������?�?�4�<�<�0�D��"�"��>�>�$�"?�"?�@�D��r!c��|jdur|jj|�}n|jj|�}|D�cgc]}|s�|��	}}|Scc}w)aN_split(text : string) -> [string]

        Split the text to wrap into indivisible chunks.  Chunks are
        not quite the same as words; see _wrap_chunks() for full
        details.  As an example, the text
          Look, goof-ball -- use the -b option!
        breaks into the following chunks:
          'Look,', ' ', 'goof-', 'ball', ' ', '--', ' ',
          'use', ' ', 'the', ' ', '-b', ' ', 'option!'
        if break_on_hyphens is True, or in:
          'Look,', ' ', 'goof-ball', ' ', '--', ' ',
          'use', ' ', 'the', ' ', '-b', ' ', option!'
        otherwise.
        T)r�
wordsep_re�split�wordsep_simple_re)rr'�chunks�cs    r�_splitzTextWrapper._split�s[��� � �D�(��_�_�*�*�4�0�F��+�+�1�1�$�7�F�#�)��q�!�)��)��
��*s�
A�Ac���d}|jj}|t|�dz
kr<||dzdk(r|||�rd||dz<|dz
}n|dz
}|t|�dz
kr�;yy)ag_fix_sentence_endings(chunks : [string])

        Correct for sentence endings buried in 'chunks'.  Eg. when the
        original text contains "... foo.\nBar ...", munge_whitespace()
        and split() will convert that to [..., "foo.", " ", "Bar", ...]
        which has one too few spaces; this method simply changes the one
        space to two.
        rrr
z  �N)�sentence_end_re�search�len)rr-�i�	patsearchs    r�_fix_sentence_endingsz!TextWrapper._fix_sentence_endings�sv��
���(�(�/�/�	��#�f�+�a�-���a��c�{�c�!�i��q�	�&:�"��q��s���Q����Q����#�f�+�a�-�r!c�Z�|dkrd}n||z
}|jrp|}|d}|jr@t|�|kDr2|jdd|�}|dkDrt	d�|d|D��r|dz}|j|d|�||d|d<y|s |j|j
��yy)a
_handle_long_word(chunks : [string],
                             cur_line : [string],
                             cur_len : int, width : int)

        Handle a chunk of text (most likely a word, not whitespace) that
        is too long to fit in any line.
        r����-rc3�&K�|]	}|dk7���y�w)r:N�)�.0r.s  r�	<genexpr>z0TextWrapper._handle_long_word.<locals>.<genexpr>�s����%G�1�a�3�h�%G�s�N)rrr4�rfind�any�append�pop)	r�reversed_chunks�cur_line�cur_lenr�
space_left�end�chunk�hyphens	         r�_handle_long_wordzTextWrapper._handle_long_word�s����1�9��J����J�� � ��C�#�B�'�E��$�$��U��j�)@����S�!�Z�8���A�:�#�%G��g�v��%G�"G� �1�*�C��O�O�E�$�3�K�(�"'���+�O�B��
��O�O�O�/�/�1�2�r!c���g}|jdkrtd|jz��|j�o|jdkDr
|j}n|j}t|�t|jj��z|jkDrtd��|j�|�r�g}d}|r
|j}n|j}|jt|�z
}|jr|dj�dk(r|r|d=|r?t|d�}||z|kr%|j|j��||z
}nn|r�?|r>t|d�|kDr-|j||||�ttt
|��}|jr,|r*|dj�dk(r|t|d�z}|d=|�r�|j�Ot|�dz|jks4|r-|jrKt|�dk(r=|dj�s*||kr%|j|dj!|�z��n|r�|dj�r]|t|j�z|krB|j|j�|j|dj!|�z�		|S|t|d�z}|d=|r��|rV|dj#�}t|�t|j�z|jkr||jz|d<	|S|j||jj�z�	|S|r���|S)a�_wrap_chunks(chunks : [string]) -> [string]

        Wrap a sequence of text chunks and return a list of lines of
        length 'self.width' or less.  (If 'break_long_words' is false,
        some lines may be longer than this.)  Chunks correspond roughly
        to words and the whitespace between them: each chunk is
        indivisible (modulo 'break_long_words'), but a line break can
        come between any two chunks.  Chunks should not have internal
        whitespace; ie. a chunk is either all whitespace or a "word".
        Whitespace chunks will be removed from the beginning and end of
        lines, but apart from that whitespace is preserved.
        rzinvalid width %r (must be > 0)rz#placeholder too large for max widthr9�)r�
ValueErrorrrrr4r�lstrip�reverser�striprArBrJ�sum�map�join�rstrip)	rr-�linesrrDrEr�l�	prev_lines	         r�_wrap_chunkszTextWrapper._wrap_chunks�s2�����:�:��?��=��
�
�J�K�K��>�>�%��~�~��!��/�/���,�,���6�{�S��!1�!1�!8�!8�!:�;�;�d�j�j�H� �!F�G�G�	������H��G���/�/���,�,���J�J��V��,�E��#�#��r�
�(8�(8�(:�b�(@�U��2�J����r�
�O���Q�;�%�'��O�O�F�J�J�L�1��q�L�G����#�f�R�j�/�E�1��&�&�v�x��%�H��c�#�x�0�1���#�#��X�b�\�5G�5G�5I�R�5O��3�x��|�,�,���R�L���N�N�*���J��N�T�^�^�3���)�)���[�A�%������*��5�0@��L�L��"�'�'�(�*;�!;�<�"�$�R�L�.�.�0�#�c�$�*:�*:�&;�;�u�D�$�O�O�D�,<�,<�=�!�L�L��"�'�'�(�2C�)C�D�!���� �3�x��|�#4�4��$�R�L�#�!�(-�b�	�(8�(8�(:�I� #�I���T�5E�5E�1F� F�$(�J�J�!/�,5��8H�8H�,H��b�	� %������V�d�.>�.>�.E�.E�.G�%G�H����S�R�r!c�F�|j|�}|j|�Sr)r(r/r&s  r�
_split_chunkszTextWrapper._split_chunksUs!���%�%�d�+���{�{�4� � r!c��|j|�}|jr|j|�|j|�S)a^wrap(text : string) -> [string]

        Reformat the single paragraph in 'text' so it fits in lines of
        no more than 'self.width' columns, and return a list of wrapped
        lines.  Tabs in 'text' are expanded with string.expandtabs(),
        and all other whitespace characters (including newline) are
        converted to space.
        )rZrr7rX)rr'r-s   rrzTextWrapper.wrap[s<���#�#�D�)���$�$��&�&�v�.�� � ��(�(r!c�B�dj|j|��S)z�fill(text : string) -> string

        Reformat the single paragraph in 'text' to fit in lines of no
        more than 'self.width' columns, and return a new string
        containing the entire wrapped paragraph.
        �
)rSrr&s  rrzTextWrapper.fillis���y�y����4��)�)r!)
�FrLrLTTFTTT�)�__name__�
__module__�__qualname__�__doc__�dict�fromkeysrR�ord�_whitespacer%�
word_punct�letter�re�escape�
whitespace�nowhitespace�compile�VERBOSEr*r,r2r r(r/r7rJrXrZrrr<r!rrrs#��.�` $�}�}�S��k�-B�C��H�M��!�J�
�F��9�2�9�9�[�1�1�J��*�Q�R�.�(�L�����
�!�� ��7�7�"	�
�
�#�J�$	�F�L�#��
�
�8�j�#8�9���!�b�j�j�"'�(�O�� "�#%�!�$(�&+�"&�!%�"&��'� �%�'�>��,�$!3�Re�N!�)�*r!rc�>�tdd|i|��}|j|�S)a�Wrap a single paragraph of text, returning a list of wrapped lines.

    Reformat the single paragraph in 'text' so it fits in lines of no
    more than 'width' columns, and return a list of wrapped lines.  By
    default, tabs in 'text' are expanded with string.expandtabs(), and
    all other whitespace characters (including newline) are converted to
    space.  See TextWrapper class for available keyword args to customize
    wrapping behaviour.
    rr<)rr�r'r�kwargs�ws    rrrus$��	�*�%�*�6�*�A��6�6�$�<�r!c�>�tdd|i|��}|j|�S)a�Fill a single paragraph of text, returning a new string.

    Reformat the single paragraph in 'text' to fit in lines of no more
    than 'width' columns, and return a new string containing the entire
    wrapped paragraph.  As with wrap(), tabs are expanded and other
    whitespace characters converted to space.  See TextWrapper class for
    available keyword args to customize wrapping behaviour.
    rr<)rrrqs    rrr�s$��	�*�%�*�6�*�A��6�6�$�<�r!c��td|dd�|��}|jdj|j�j	���S)a�Collapse and truncate the given text to fit in the given width.

    The text first has its whitespace collapsed.  If it then fits in
    the *width*, it is returned as is.  Otherwise, as many words
    as possible are joined and then the placeholder is appended::

        >>> textwrap.shorten("Hello  world!", width=12)
        'Hello world!'
        >>> textwrap.shorten("Hello  world!", width=11)
        'Hello [...]'
    r)rrr
r<)rrrSrPr+rqs    rrr�s?��	�7�%�1�7��7�A��6�6�#�(�(�4�:�:�<�-�-�/�0�1�1r!z^[ 	]+$z(^[ 	]*)(?:[^ 	
])c�V�d}tjd|�}tj|�}|D]Y}|�|}�|j	|�r�|j	|�r|}�.tt
||��D]\}\}}||k7s�|d|}�Y�[	|rtjd|zd|�}|S)a�Remove any common leading whitespace from every line in `text`.

    This can be used to make triple-quoted strings line up with the left
    edge of the display, while still presenting them in the source code
    in indented form.

    Note that tabs and spaces are both treated as whitespace, but they
    are not equal: the lines "  hello" and "\thello" are
    considered to have no common leading whitespace.

    Entirely blank lines are normalized to a newline character.
    NrLz(?m)^)	�_whitespace_only_re�sub�_leading_whitespace_re�findall�
startswith�	enumerate�zipr+rj)r'�margin�indentsrr5�x�y�lines        rrr�s����F��"�"�2�t�,�D�$�,�,�T�2�G�����>��F��
�
�v�
&���
�
�v�
&��F�
'�s�6�6�':�;�
�	��6�A�q���6�#�B�Q�Z�F��
�#�.	�
��v�v�h��'��T�2���Kr!c�L������d�����fd�}dj|��S)aFAdds 'prefix' to the beginning of selected lines in 'text'.

    If 'predicate' is provided, 'prefix' will only be added to the lines
    where 'predicate(line)' is True. If 'predicate' is not provided,
    it will default to adding 'prefix' to all non-empty lines that do not
    consist solely of whitespace characters.
    c�"�|j�Sr)rP)r�s r�	predicatezindent.<locals>.predicate�s���:�:�<�r!c3�\�K��jd�D]}�|�r�|zn|���y�w)NT)�
splitlines)r�r��prefixr's ���r�prefixed_lineszindent.<locals>.prefixed_lines�s1������O�O�D�)�	?�D�$-�d�O�6�D�=��>�	?�s�),rL)rS)r'r�r�r�s``` rrr�s)�����	 �?��7�7�>�#�$�$r!�__main__z Hello there.
  This is indented.)r^r)rcrj�__all__rgrrrrrn�	MULTILINErwryrrr`�printr<r!r�<module>r�s����
�
H��
 ��_*�_*�H�
�
2�$!�b�j�j��R�\�\�:��#����$;�R�\�\�J��0�f%�$�z��
�&�4�
5�6�r!
¿Qué es la limpieza dental de perros? - Clínica veterinaria


Es la eliminación del sarro y la placa adherida a la superficie de los dientes mediante un equipo de ultrasonidos que garantiza la integridad de las piezas dentales a la vez que elimina en profundidad cualquier resto de suciedad.

A continuación se procede al pulido de los dientes mediante una fresa especial que elimina la placa bacteriana y devuelve a los dientes el aspecto sano que deben tener.

Una vez terminado todo el proceso, se mantiene al perro en observación hasta que se despierta de la anestesia, bajo la atenta supervisión de un veterinario.

¿Cada cuánto tiempo tengo que hacerle una limpieza dental a mi perro?

A partir de cierta edad, los perros pueden necesitar una limpieza dental anual o bianual. Depende de cada caso. En líneas generales, puede decirse que los perros de razas pequeñas suelen acumular más sarro y suelen necesitar una atención mayor en cuanto a higiene dental.


Riesgos de una mala higiene


Los riesgos más evidentes de una mala higiene dental en los perros son los siguientes:

  • Cuando la acumulación de sarro no se trata, se puede producir una inflamación y retracción de las encías que puede descalzar el diente y provocar caídas.
  • Mal aliento (halitosis).
  • Sarro perros
  • Puede ir a más
  • Las bacterias de la placa pueden trasladarse a través del torrente circulatorio a órganos vitales como el corazón ocasionando problemas de endocarditis en las válvulas. Las bacterias pueden incluso acantonarse en huesos (La osteomielitis es la infección ósea, tanto cortical como medular) provocando mucho dolor y una artritis séptica).

¿Cómo se forma el sarro?

El sarro es la calcificación de la placa dental. Los restos de alimentos, junto con las bacterias presentes en la boca, van a formar la placa bacteriana o placa dental. Si la placa no se retira, al mezclarse con la saliva y los minerales presentes en ella, reaccionará formando una costra. La placa se calcifica y se forma el sarro.

El sarro, cuando se forma, es de color blanquecino pero a medida que pasa el tiempo se va poniendo amarillo y luego marrón.

Síntomas de una pobre higiene dental
La señal más obvia de una mala salud dental canina es el mal aliento.

Sin embargo, a veces no es tan fácil de detectar
Y hay perros que no se dejan abrir la boca por su dueño. Por ejemplo…

Recientemente nos trajeron a la clínica a un perro que parpadeaba de un ojo y decía su dueño que le picaba un lado de la cara. Tenía molestias y dificultad para comer, lo que había llevado a sus dueños a comprarle comida blanda (que suele ser un poco más cara y llevar más contenido en grasa) durante medio año. Después de una exploración oftalmológica, nos dimos cuenta de que el ojo tenía una úlcera en la córnea probablemente de rascarse . Además, el canto lateral del ojo estaba inflamado. Tenía lo que en humanos llamamos flemón pero como era un perro de pelo largo, no se le notaba a simple vista. Al abrirle la boca nos llamó la atención el ver una muela llena de sarro. Le realizamos una radiografía y encontramos una fístula que llegaba hasta la parte inferior del ojo.

Le tuvimos que extraer la muela. Tras esto, el ojo se curó completamente con unos colirios y una lentilla protectora de úlcera. Afortunadamente, la úlcera no profundizó y no perforó el ojo. Ahora el perro come perfectamente a pesar de haber perdido una muela.

¿Cómo mantener la higiene dental de tu perro?
Hay varias maneras de prevenir problemas derivados de la salud dental de tu perro.

Limpiezas de dientes en casa
Es recomendable limpiar los dientes de tu perro semanal o diariamente si se puede. Existe una gran variedad de productos que se pueden utilizar:

Pastas de dientes.
Cepillos de dientes o dedales para el dedo índice, que hacen más fácil la limpieza.
Colutorios para echar en agua de bebida o directamente sobre el diente en líquido o en spray.

En la Clínica Tus Veterinarios enseñamos a nuestros clientes a tomar el hábito de limpiar los dientes de sus perros desde que son cachorros. Esto responde a nuestro compromiso con la prevención de enfermedades caninas.

Hoy en día tenemos muchos clientes que limpian los dientes todos los días a su mascota, y como resultado, se ahorran el dinero de hacer limpiezas dentales profesionales y consiguen una mejor salud de su perro.


Limpiezas dentales profesionales de perros y gatos

Recomendamos hacer una limpieza dental especializada anualmente. La realizamos con un aparato de ultrasonidos que utiliza agua para quitar el sarro. Después, procedemos a pulir los dientes con un cepillo de alta velocidad y una pasta especial. Hacemos esto para proteger el esmalte.

La frecuencia de limpiezas dentales necesaria varía mucho entre razas. En general, las razas grandes tienen buena calidad de esmalte, por lo que no necesitan hacerlo tan a menudo e incluso pueden pasarse la vida sin requerir una limpieza. Sin embargo, razas pequeñas como el Yorkshire o el Maltés, deben hacérselas todos los años desde cachorros si se quiere conservar sus piezas dentales.

Otro factor fundamental es la calidad del pienso. Algunas marcas han diseñado croquetas que limpian la superficie del diente y de la muela al masticarse.

Ultrasonido para perros

¿Se necesita anestesia para las limpiezas dentales de perros y gatos?

La limpieza dental en perros no es una técnica que pueda practicarse sin anestesia general , aunque hay veces que los propietarios no quieren anestesiar y si tiene poco sarro y el perro es muy bueno se puede intentar…… , pero no se va a poder pulir ni acceder a todas la zona de la boca …. Además los limpiadores dentales van a irrigar agua y hay riesgo de aspiración a vías respiratorias si no se realiza una anestesia correcta con intubación traqueal . En resumen , sin anestesia no se va hacer una correcta limpieza dental.

Tampoco sirve la sedación ya que necesitamos que el animal esté totalmente quieto, y el veterinario tenga un acceso completo a todas sus piezas dentales y encías.

Alimentos para la limpieza dental

Hay que tener cierto cuidado a la hora de comprar determinados alimentos porque no todos son saludables. Algunos tienen demasiado contenido graso, que en exceso puede causar problemas cardiovasculares y obesidad.

Los mejores alimentos para los dientes son aquellos que están elaborados por empresas farmacéuticas y llevan componentes químicos con tratamientos específicos para el diente del perro. Esto implica no solo limpieza a través de la acción mecánica de morder sino también un tratamiento antibacteriano para prevenir el sarro.

Conclusión

Si eres como la mayoría de dueños, por falta de tiempo , es probable que no estés prestando la suficiente atención a la limpieza dental de tu perro. Por eso te animamos a que comiences a limpiar los dientes de tu perro y consideres atender a su higiene bucal con frecuencia.

Estas simples medidas pueden conllevar a que tu perro tenga una vida más larga y mucho más saludable.

Si te resulta imposible introducir un cepillo de dientes a tu perro en la boca, pásate con él por clínica Tus Veterinarios y te explicamos cómo hacerlo.

Necesitas hacer una limpieza dental profesional a tu mascota?
Llámanos al 622575274 o contacta con nosotros

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

¡Hola!