HEX
Server: Apache/2.4.68 (Debian)
System: Linux as-cs-widget-demo-us-central1 6.1.0-44-cloud-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.164-1 (2026-03-09) x86_64
User: root (0)
PHP: 8.2.32
Disabled: NONE
Upload Files
File: //lib/google-cloud-sdk/lib/surface/storage/__pycache__/cat.cpython-312.pyc
�

��}���dZddlmZddlmZddlmZddlZddlmZddlm	Z	ddlm
Z
dd	lmZdd
lm
Z
ddlmZddlmZdd
lmZddlmZddlmZd�Ze
j,Gd�de
j.��Zy)zDImplementation of Unix-like cat command for cloud storage providers.�)�absolute_import)�division)�unicode_literalsN)�	cloud_api)�arg_parsers)�base)�encryption_util)�errors)�flags)�name_expansion)�storage_url)�
task_executor)�cat_task_iteratorc�0�|dk(rtjdd��S|jd�\}}}|s#tjdt|�zd��S|s tjt|�d��Stjj	|�S)z�Creates Range object out of given string value.

  Args:
    string_value (str): The range the user entered.

  Returns:
    Range(int, int|None): The Range object from the given string value.
  �-rN)�start�end���)r�Range�	partition�int�Parse)�string_value�range_start�_�	range_ends    �lib/surface/storage/cat.py�
_range_parserr#s����S�����1�$�/�/�*�4�4�S�9��+�q�)�	����2��I��#6�D�A�A�	����3�{�#3��>�>�	�	�	�	 �	 ��	.�.�c�0�eZdZdZddd�Zed��Zd�Zy)�Catz3Outputs the contents of one or more URLs to stdout.a"
      The cat command outputs the contents of one or more URLs to stdout. While
      the cat command does not compute a checksum, it is otherwise equivalent to
      doing:

        $ {parent_command} cp url... -

      (The final '-' causes gcloud to stream the output to stdout.)
      a�

      The following command writes all text files in a bucket to stdout:

        $ {command} gs://bucket/*.txt

      The following command outputs a short header describing file.txt, along
      with its contents:

        $ {command} -d gs://my-bucket/file.txt

      The following command outputs bytes 256-939 of file.txt:

        $ {command} -r 256-939 gs://my-bucket/file.txt

      The following command outputs the last 5 bytes of file.txt:

        $ {command} -r -5 gs://my-bucket/file.txt

      )�DESCRIPTION�EXAMPLESc��|jddd��|jdddd�	�|jd
dttjd��
�t	j
|�t	j|d��y)N�url�+zThe url of objects to list.)�nargs�helpz-dz
--display-url�
store_truez%Prints the header before each object.)�actionr(z-rz--rangea�            Causes gcloud storage to output just the specified byte range of
            the object. In a case where "start" = 'x', and "end" = 'y',
            ranges take the form:
            `x-y` (e.g., `-r 256-5939`), `x-` (e.g., `-r 256-`),
            `-y` (e.g., `-r -5`)

            When offsets start at 0, x-y means to return bytes x
            through y (inclusive), x- means to return bytes x through
            the end of the object, and -y changes the role of y.
            If -y is present, then it returns the last y bytes of the object.

            If the bytes are out of range of the object,
            then nothing is printed)�typer(T)�command_only_reads_data)�add_argumentr�textwrap�dedentr�add_additional_headers_flag�add_encryption_flags)�parsers r�ArgszCat.Args^s���
����S�/L��M�
������
4�	�6�
�����
�
�_�_�
'�
(�	�)�&
�%�%�f�-�	���v�t�Drc
��tj|�|jr�g}|jD]p}tj|�}t|tj�s.tjdj|j���|j|��rtj|jtjj tj"j$��}t'j(||j*t-|j.dd�t-|j.dd���}t1j2|��|_y)Nz@cat only works for valid cloud URLs. {} is an invalid cloud URL.)�fields_scope�recursion_requestedrrr)�
start_byte�end_byte)�
task_iterator)r	�initialize_key_storer%r
�storage_url_from_string�
isinstance�CloudUrlr
�InvalidUrlError�format�
url_string�appendr�NameExpansionIteratorr�FieldsScope�NO_ACL�RecursionSetting�NOr�get_cat_task_iterator�display_url�getattr�ranger�
execute_tasks�	exit_code)�self�args�storage_urlsr@�
url_object�source_expansion_iteratorr9s       r�RunzCat.Run|s���(�(��.��x�x��l����*� �8�8��D�
��*�k�&:�&:�;��&�&�(F�FL�f�+5�+@�+@�GB�C�C�	���J�'�
!�!/� D� D�����*�*�1�1�*�;�;�>�>�!@��
&�;�;�!�����4�:�:�w��2�����U�D�1�	3�M�
#�0�0�}�M�D�NrN)�__name__�
__module__�__qualname__�__doc__�
detailed_help�staticmethodr3rR�rrr!r!8s3��;�
�
� �-�D�E��E�:Nrr!)rV�
__future__rrrr.�googlecloudsdk.api_lib.storager�googlecloudsdk.callioperr�"googlecloudsdk.command_lib.storager	r
rrr
�(googlecloudsdk.command_lib.storage.tasksr�,googlecloudsdk.command_lib.storage.tasks.catrr�UniverseCompatible�Commandr!rYrr�<module>rbse��K�&��'��4�/�(�>�5�4�=�:�B�J�/�*���]N�$�,�,�]N��]Nr