File: //lib/google-cloud-sdk/lib/surface/storage/__pycache__/cat.cpython-312.pyc
�
��} � � � d Z ddlmZ ddlmZ ddlmZ ddlZddlmZ ddlm Z ddlm
Z
dd lmZ dd
lm
Z
ddlmZ ddlmZ dd
lmZ ddlmZ ddlmZ d� Ze
j, G d� 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( rt j dd�� S | j d� \ }}}|s#t j dt |� z d�� S |s t j t |� d�� S t j j | � 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.
�-r N)�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 � e Zd ZdZddd�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 � � | j ddd�� | j dddd� � | j d
dt t j d� �
� 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�
�����
�
�_�_�
'�
(� � )�&