
    i?1iܵ                        d dl mZ d dlZd dlmZmZ d dlmZmZm	Z	m
Z
 d dlmZ d dlmZmZ d dlmZmZ er
d dlZd dlmZ  G d	 d
e      Z G d de      Zy)    )annotationsN)asynccontextmanagercontextmanager)TYPE_CHECKINGAnyAsyncIteratorIterator)ListPage)"filter_out_none_values_recursivelyignore_docs)ResourceClientResourceClientAsync)JSONSerializablec                  J    e Zd ZdZed fd       ZddZddddZddZdddddddddddd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd	Z	d
ddddddddd		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZ
ddddddddddddddddd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZddddddddddddddddd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZedddddddddddddddd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd       ZddZ xZS )DatasetClientz-Sub-client for manipulating a single dataset.c                L    |j                  dd      }t        |   |d|i| y)zInitialize the DatasetClient.resource_pathdatasetsNpopsuper__init__selfargskwargsr   	__class__s       w/home/www/therecruiter.miabetepe.com/venv/lib/python3.12/site-packages/apify_client/clients/resource_clients/dataset.pyr   zDatasetClient.__init__   ,     

?J?$FmFvF    c                "    | j                         S )Retrieve the dataset.

        https://docs.apify.com/api/v2#/reference/datasets/dataset/get-dataset

        Returns:
            dict, optional: The retrieved dataset, or None, if it does not exist
        _getr   s    r   getzDatasetClient.get   s     yy{r    Nnamec               >    d|i}| j                  t        |            S )
  Update the dataset with specified fields.

        https://docs.apify.com/api/v2#/reference/datasets/dataset/update-dataset

        Args:
            name (str, optional): The new name for the dataset

        Returns:
            dict: The updated dataset
        r(   _updater   r   r(   updated_fieldss      r   updatezDatasetClient.update$   s'     D
 ||>~NOOr    c                "    | j                         S )nDelete the dataset.

        https://docs.apify.com/api/v2#/reference/datasets/dataset/delete-dataset
        _deleter%   s    r   deletezDatasetClient.delete5   s    
 ||~r    offsetlimitcleandescfieldsomitunwind
skip_emptyskip_hiddenflattenviewc                  | j                  |||||||||	|
|      }| j                  j                  | j                  d      d|      }|j	                         }t        |t        |j                  d         t        |j                  d         t        |      t        |j                  d         t        |j                  d         d	      S )

  List the items of the dataset.

        https://docs.apify.com/api/v2#/reference/datasets/item-collection/get-items

        Args:
            offset (int, optional): Number of items that should be skipped at the start. The default value is 0
            limit (int, optional): Maximum number of items to return. By default there is no limit.
            desc (bool, optional): By default, results are returned in the same order as they were stored.
                To reverse the order, set this parameter to True.
            clean (bool, optional): If True, returns only non-empty items and skips hidden fields (i.e. fields starting with the # character).
                The clean parameter is just a shortcut for skip_hidden=True and skip_empty=True parameters.
                Note that since some objects might be skipped from the output, that the result might contain less items than the limit value.
            fields (list of str, optional): A list of fields which should be picked from the items,
                only these fields will remain in the resulting record objects.
                Note that the fields in the outputted items are sorted the same way as they are specified in the fields parameter.
                You can use this feature to effectively fix the output format.
            omit (list of str, optional): A list of fields which should be omitted from the items.
            unwind (str, optional): Name of a field which should be unwound.
                If the field is an array then every element of the array will become a separate record and merged with parent object.
                If the unwound field is an object then it is merged with the parent object.
                If the unwound field is missing or its value is neither an array nor an object and therefore cannot be merged with a parent object,
                then the item gets preserved as it is. Note that the unwound items ignore the desc parameter.
            skip_empty (bool, optional): If True, then empty items are skipped from the output.
                Note that if used, the results might contain less items than the limit value.
            skip_hidden (bool, optional): If True, then hidden fields are skipped from the output, i.e. fields starting with the # character.
            flatten (list of str, optional): A list of fields that should be flattened
            view (str, optional): Name of the dataset view to be used

        Returns:
            ListPage: A page of the list of dataset items according to the specified filters.
        r6   r7   r9   r8   r:   r;   r<   	skipEmpty
skipHiddenr?   r@   itemsGETurlmethodparamsx-apify-pagination-totalx-apify-pagination-offsetx-apify-pagination-limitx-apify-pagination-descrF   totalr6   countr7   r9   
_paramshttp_clientcall_urljsonr
   intheaderslenboolr   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   request_paramsresponsedatas                  r   
list_itemszDatasetClient.list_items<   s    \  " & 
 ##((		'"! ) 
 }}X--.HIJh../JKLTX--.HIJX--.GHI	
 		
r    r   	r6   r7   r8   r9   r:   r;   r<   r=   r>   c       	      #     K   d}
d}d}|so|
}|||k(  ryt        |
||z
        }| j                  ||z   ||||||||		      }|j                  E d{    t        |j                        }||z  }||
k  rd}|snyy7 *wa>	  Iterate over the items in the dataset.

        https://docs.apify.com/api/v2#/reference/datasets/item-collection/get-items

        Args:
            offset (int, optional): Number of items that should be skipped at the start. The default value is 0
            limit (int, optional): Maximum number of items to return. By default there is no limit.
            desc (bool, optional): By default, results are returned in the same order as they were stored.
                To reverse the order, set this parameter to True.
            clean (bool, optional): If True, returns only non-empty items and skips hidden fields (i.e. fields starting with the # character).
                The clean parameter is just a shortcut for skip_hidden=True and skip_empty=True parameters.
                Note that since some objects might be skipped from the output, that the result might contain less items than the limit value.
            fields (list of str, optional): A list of fields which should be picked from the items,
                only these fields will remain in the resulting record objects.
                Note that the fields in the outputted items are sorted the same way as they are specified in the fields parameter.
                You can use this feature to effectively fix the output format.
            omit (list of str, optional): A list of fields which should be omitted from the items.
            unwind (str, optional): Name of a field which should be unwound.
                If the field is an array then every element of the array will become a separate record and merged with parent object.
                If the unwound field is an object then it is merged with the parent object.
                If the unwound field is missing or its value is neither an array nor an object and therefore cannot be merged with a parent object,
                then the item gets preserved as it is. Note that the unwound items ignore the desc parameter.
            skip_empty (bool, optional): If True, then empty items are skipped from the output.
                Note that if used, the results might contain less items than the limit value.
            skip_hidden (bool, optional): If True, then hidden fields are skipped from the output, i.e. fields starting with the # character.

        Yields:
            dict: An item from the dataset
        i  Fr   Nrb   Tminra   rF   r[   )r   r6   r7   r8   r9   r:   r;   r<   r=   r>   
cache_sizeshould_finish
read_itemseffective_limitcurrent_items_pagecurrent_page_item_counts                   r   iterate_itemszDatasetClient.iterate_items   s     T 


  (O &"%j%*2D"E!%
*%%' "1 
" *////&)*<*B*B&C#11J&3 $3  & 0s   AA=A;'A=9A=rX   item_formatr6   r7   r9   r8   bom	delimiterr:   r;   r<   r=   skip_header_rowr>   xml_rootxml_rowr?   c               |    t        j                  dt        d       | j                  |||||||||	|
||||||      S )aB  Get the items in the dataset as raw bytes.

        Deprecated: this function is a deprecated alias of `get_items_as_bytes`. It will be removed in a future version.

        https://docs.apify.com/api/v2#/reference/datasets/item-collection/get-items

        Args:
            item_format (str): Format of the results, possible values are: json, jsonl, csv, html, xlsx, xml and rss. The default value is json.
            offset (int, optional): Number of items that should be skipped at the start. The default value is 0
            limit (int, optional): Maximum number of items to return. By default there is no limit.
            desc (bool, optional): By default, results are returned in the same order as they were stored.
                To reverse the order, set this parameter to True.
            clean (bool, optional): If True, returns only non-empty items and skips hidden fields (i.e. fields starting with the # character).
                The clean parameter is just a shortcut for skip_hidden=True and skip_empty=True parameters.
                Note that since some objects might be skipped from the output, that the result might contain less items than the limit value.
            bom (bool, optional): All text responses are encoded in UTF-8 encoding.
                By default, csv files are prefixed with the UTF-8 Byte Order Mark (BOM),
                while json, jsonl, xml, html and rss files are not. If you want to override this default behavior,
                specify bom=True query parameter to include the BOM or bom=False to skip it.
            delimiter (str, optional): A delimiter character for CSV files. The default delimiter is a simple comma (,).
            fields (list of str, optional): A list of fields which should be picked from the items,
                only these fields will remain in the resulting record objects.
                Note that the fields in the outputted items are sorted the same way as they are specified in the fields parameter.
                You can use this feature to effectively fix the output format.
            omit (list of str, optional): A list of fields which should be omitted from the items.
            unwind (str, optional): Name of a field which should be unwound.
                If the field is an array then every element of the array will become a separate record and merged with parent object.
                If the unwound field is an object then it is merged with the parent object.
                If the unwound field is missing or its value is neither an array nor an object and therefore cannot be merged with a parent object,
                then the item gets preserved as it is. Note that the unwound items ignore the desc parameter.
            skip_empty (bool, optional): If True, then empty items are skipped from the output.
                Note that if used, the results might contain less items than the limit value.
            skip_header_row (bool, optional): If True, then header row in the csv format is skipped.
            skip_hidden (bool, optional): If True, then hidden fields are skipped from the output, i.e. fields starting with the # character.
            xml_root (str, optional): Overrides default root element name of xml output. By default the root element is items.
            xml_row (str, optional): Overrides default element name that wraps each page or page function result object in xml output.
                By default the element name is item.
            flatten (list of str, optional): A list of fields that should be flattened

        Returns:
            bytes: The dataset items as raw bytes
        za`DatasetClient.download_items()` is deprecated, use `DatasetClient.get_items_as_bytes()` instead.   )
stacklevelrn   )warningswarnDeprecationWarningget_items_as_bytes)r   ro   r6   r7   r9   r8   rp   rq   r:   r;   r<   r=   rr   r>   rs   rt   r?   s                    r   download_itemszDatasetClient.download_items   sd    | 	o	
 &&#!+#! ' 
 	
r    c                   | j                  |||||||||	|
||||||      }| j                  j                  | j                  d      d|d      }|j                  S )  Get the items in the dataset as raw bytes.

        https://docs.apify.com/api/v2#/reference/datasets/item-collection/get-items

        Args:
            item_format (str): Format of the results, possible values are: json, jsonl, csv, html, xlsx, xml and rss. The default value is json.
            offset (int, optional): Number of items that should be skipped at the start. The default value is 0
            limit (int, optional): Maximum number of items to return. By default there is no limit.
            desc (bool, optional): By default, results are returned in the same order as they were stored.
                To reverse the order, set this parameter to True.
            clean (bool, optional): If True, returns only non-empty items and skips hidden fields (i.e. fields starting with the # character).
                The clean parameter is just a shortcut for skip_hidden=True and skip_empty=True parameters.
                Note that since some objects might be skipped from the output, that the result might contain less items than the limit value.
            bom (bool, optional): All text responses are encoded in UTF-8 encoding.
                By default, csv files are prefixed with the UTF-8 Byte Order Mark (BOM),
                while json, jsonl, xml, html and rss files are not. If you want to override this default behavior,
                specify bom=True query parameter to include the BOM or bom=False to skip it.
            delimiter (str, optional): A delimiter character for CSV files. The default delimiter is a simple comma (,).
            fields (list of str, optional): A list of fields which should be picked from the items,
                only these fields will remain in the resulting record objects.
                Note that the fields in the outputted items are sorted the same way as they are specified in the fields parameter.
                You can use this feature to effectively fix the output format.
            omit (list of str, optional): A list of fields which should be omitted from the items.
            unwind (str, optional): Name of a field which should be unwound.
                If the field is an array then every element of the array will become a separate record and merged with parent object.
                If the unwound field is an object then it is merged with the parent object.
                If the unwound field is missing or its value is neither an array nor an object and therefore cannot be merged with a parent object,
                then the item gets preserved as it is. Note that the unwound items ignore the desc parameter.
            skip_empty (bool, optional): If True, then empty items are skipped from the output.
                Note that if used, the results might contain less items than the limit value.
            skip_header_row (bool, optional): If True, then header row in the csv format is skipped.
            skip_hidden (bool, optional): If True, then hidden fields are skipped from the output, i.e. fields starting with the # character.
            xml_root (str, optional): Overrides default root element name of xml output. By default the root element is items.
            xml_row (str, optional): Overrides default element name that wraps each page or page function result object in xml output.
                By default the element name is item.
            flatten (list of str, optional): A list of fields that should be flattened

        Returns:
            bytes: The dataset items as raw bytes
        formatr6   r7   r9   r8   rp   rq   r:   r;   r<   rD   skipHeaderRowrE   xmlRootxmlRowr?   rF   rG   FrI   rJ   rK   parse_responserT   rU   rV   rW   contentr   ro   r6   r7   r9   r8   rp   rq   r:   r;   r<   r=   rr   r>   rs   rt   r?   r^   r_   s                      r   r{   z DatasetClient.get_items_as_bytes/  s    x  )"! & 
& ##((		'"! 	 ) 
 r    ro   r6   r7   r9   r8   rp   rq   r:   r;   r<   r=   rr   r>   rs   rt   c             #    K   d}	 | j                  |||||||||	|
|||||      }| j                  j                  | j                  d      d|dd      }| |r|j	                          yy# |r|j	                          w w xY wwa  Retrieve the items in the dataset as a stream.

        https://docs.apify.com/api/v2#/reference/datasets/item-collection/get-items

        Args:
            item_format (str): Format of the results, possible values are: json, jsonl, csv, html, xlsx, xml and rss. The default value is json.
            offset (int, optional): Number of items that should be skipped at the start. The default value is 0
            limit (int, optional): Maximum number of items to return. By default there is no limit.
            desc (bool, optional): By default, results are returned in the same order as they were stored.
                To reverse the order, set this parameter to True.
            clean (bool, optional): If True, returns only non-empty items and skips hidden fields (i.e. fields starting with the # character).
                The clean parameter is just a shortcut for skip_hidden=True and skip_empty=True parameters.
                Note that since some objects might be skipped from the output, that the result might contain less items than the limit value.
            bom (bool, optional): All text responses are encoded in UTF-8 encoding.
                By default, csv files are prefixed with the UTF-8 Byte Order Mark (BOM),
                while json, jsonl, xml, html and rss files are not. If you want to override this default behavior,
                specify bom=True query parameter to include the BOM or bom=False to skip it.
            delimiter (str, optional): A delimiter character for CSV files. The default delimiter is a simple comma (,).
            fields (list of str, optional): A list of fields which should be picked from the items,
                only these fields will remain in the resulting record objects.
                Note that the fields in the outputted items are sorted the same way as they are specified in the fields parameter.
                You can use this feature to effectively fix the output format.
            omit (list of str, optional): A list of fields which should be omitted from the items.
            unwind (str, optional): Name of a field which should be unwound.
                If the field is an array then every element of the array will become a separate record and merged with parent object.
                If the unwound field is an object then it is merged with the parent object.
                If the unwound field is missing or its value is neither an array nor an object and therefore cannot be merged with a parent object,
                then the item gets preserved as it is. Note that the unwound items ignore the desc parameter.
            skip_empty (bool, optional): If True, then empty items are skipped from the output.
                Note that if used, the results might contain less items than the limit value.
            skip_header_row (bool, optional): If True, then header row in the csv format is skipped.
            skip_hidden (bool, optional): If True, then hidden fields are skipped from the output, i.e. fields starting with the # character.
            xml_root (str, optional): Overrides default root element name of xml output. By default the root element is items.
            xml_row (str, optional): Overrides default element name that wraps each page or page function result object in xml output.
                By default the element name is item.

        Returns:
            httpx.Response: The dataset items as a context-managed streaming Response
        N)r   r6   r7   r9   r8   rp   rq   r:   r;   r<   rD   r   rE   r   r   rF   rG   TF)rI   rJ   rK   streamr   )rT   rU   rV   rW   closer   ro   r6   r7   r9   r8   rp   rq   r:   r;   r<   r=   rr   r>   rs   rt   r_   r^   s                     r   stream_itemszDatasetClient.stream_items  s     v 	!!\\"#$-&  * N$ '',,IIg&%$ - H N  x  s   BAA- B-BBc                    d}d}t        |t              r|}n|}| j                  j                  | j	                  d      dddi| j                         ||       ya  Push items to the dataset.

        https://docs.apify.com/api/v2#/reference/datasets/item-collection/put-items

        Args:
            items: The items which to push in the dataset. Either a stringified JSON, a dictionary, or a list of strings or dictionaries.
        NrF   POSTzcontent-typezapplication/json; charset=utf-8)rI   rJ   rZ   rK   r`   rX   
isinstancestrrU   rV   rW   rT   r   rF   r`   rX   s       r   
push_itemszDatasetClient.push_items  sb     eS!DD		'"#%FG<<> 	 	
r    )r   r   r   r   r   r   returnNone)r   r   r   dict | None)r   r   r(   
str | Noner   dict)r   r   r   r   )r   r   r6   
int | Noner7   r   r8   bool | Noner9   r   r:   list[str] | Noner;   r   r<   r   r=   r   r>   r   r?   r   r@   r   r   r
   )r   r   r6   rY   r7   r   r8   r   r9   r   r:   r   r;   r   r<   r   r=   r   r>   r   r   zIterator[dict])$r   r   ro   r   r6   r   r7   r   r9   r   r8   r   rp   r   rq   r   r:   r   r;   r   r<   r   r=   r   rr   r   r>   r   rs   r   rt   r   r?   r   r   bytes)"r   r   ro   r   r6   r   r7   r   r9   r   r8   r   rp   r   rq   r   r:   r   r;   r   r<   r   r=   r   rr   r   r>   r   rs   r   rt   r   r   zIterator[httpx.Response])r   r   rF   r   r   r   )__name__
__module____qualname____doc__r   r   r&   r/   r4   ra   rm   r|   r{   r   r   r   __classcell__r   s   @r   r   r      s   7G G
 ;? P" " ! #'!%!"&#'$(M
M
 M
 	M

 M
 M
 !M
 M
 M
  M
 !M
 "M
 M
 
M
d  ! #'!%!"&#'K%K% K% 	K%
 K% K% !K% K% K%  K% !K% 
K%` "!  ! $#'!%!"&'+#'#"$(%U
U
 U
 	U

 U
 U
 U
 U
 U
 !U
 U
 U
  U
 %U
 !U
  !U
" #U
$ "%U
& 
'U
t "!  ! $#'!%!"&'+#'#"$(%V V  V  	V 
 V  V  V  V  V  !V  V  V   V  %V  !V   !V " #V $ "%V & 
'V p  "!  ! $#'!%!"&'+#'#"#X!X! X! 	X!
 X! X! X! X! X! !X! X! X!  X! %X! !X!  !X!" #X!$ 
"%X! X!t
r    r   c                      e Zd ZdZed fd       ZddZddddZddZdddddddddddd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd	Z	d
ddddddddd		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZ
ddddddddddddddddd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZedddddddddddddddd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd       ZddZ xZS )DatasetClientAsyncz3Async sub-client for manipulating a single dataset.c                L    |j                  dd      }t        |   |d|i| y)z"Initialize the DatasetClientAsync.r   r   Nr   r   s       r   r   zDatasetClientAsync.__init__  r   r    c                >   K   | j                          d{   S 7 w)r"   Nr#   r%   s    r   r&   zDatasetClientAsync.get  s      YY[      Nr'   c               Z   K   d|i}| j                  t        |             d{   S 7 w)r*   r(   Nr+   r-   s      r   r/   zDatasetClientAsync.update  s1      D
 \\"D^"TUUUUs   "+)+c                >   K   | j                          d{   S 7 w)r1   Nr2   r%   s    r   r4   zDatasetClientAsync.delete   s     
 \\^###r   r5   c                 K   | j                  |||||||||	|
|      }| j                  j                  | j                  d      d|       d{   }|j	                         }t        |t        |j                  d         t        |j                  d         t        |      t        |j                  d         t        |j                  d	         d
      S 7 w)rB   rC   rF   rG   rH   NrL   rM   rN   rO   rP   rS   r]   s                  r   ra   zDatasetClientAsync.list_items'  s     \  " & 
 ))..		'"! / 
 
 }}X--.HIJh../JKLTX--.HIJX--.GHI	
 		

s   ACCBCr   rb   c       	         K   d}
d}d}|sy|
}|||k(  ryt        |
||z
        }| j                  ||z   ||||||||		       d{   }|j                  D ]  }| 	 t        |j                        }||z  }||
k  rd}|sxyy7 @wrd   re   )r   r6   r7   r8   r9   r:   r;   r<   r=   r>   rg   rh   ri   rj   rk   itemrl   s                    r   rm   z DatasetClientAsync.iterate_itemsv  s     T 


  (O &"%j%*2D"E'+
*%%' (7 
( 
" +00 
 '**<*B*B&C#11J&3 $5  
"s   ABB=BBrX   rn   c                  K   | j                  |||||||||	|
||||||      }| j                  j                  | j                  d      d|d       d{   }|j                  S 7 w)r~   r   rF   rG   Fr   Nr   r   s                      r   r{   z%DatasetClientAsync.get_items_as_bytes  s     x  )"! & 
& ))..		'"! 	 / 
 
 
s   AA(A&A(r   c              J  K   d}	 | j                  |||||||||	|
|||||      }| j                  j                  | j                  d      d|dd       d{   }| |r|j	                          d{    yy7 %7 # |r|j	                          d{  7   w w xY wwr   )rT   rU   rV   rW   acloser   s                     r   r   zDatasetClientAsync.stream_items  s     v 	(!\\"#$-&  * N$ "--22IIg&%$ 3  H Noo'''  ( oo''' sM   B#AB A>	B "B#7B 8B#>B  B#B BB  B#c                   K   d}d}t        |t              r|}n|}| j                  j                  | j	                  d      dddi| j                         ||       d{    y7 wr   r   r   s       r   r   zDatasetClientAsync.push_itemsw  sp      eS!DD##		'"#%FG<<> $ 
 	
 	
s   AA'A% A')r   r   r   r   r   r   r   r   )r   r   r   r   )r   r   r(   r   r   r   )r   r   r   r   )r   r   r6   r   r7   r   r8   r   r9   r   r:   r   r;   r   r<   r   r=   r   r>   r   r?   r   r@   r   r   r
   )r   r   r6   rY   r7   r   r8   r   r9   r   r:   r   r;   r   r<   r   r=   r   r>   r   r   zAsyncIterator[dict])$r   r   ro   r   r6   r   r7   r   r9   r   r8   r   rp   r   rq   r   r:   r   r;   r   r<   r   r=   r   rr   r   r>   r   rs   r   rt   r   r?   r   r   r   )"r   r   ro   r   r6   r   r7   r   r9   r   r8   r   rp   r   rq   r   r:   r   r;   r   r<   r   r=   r   rr   r   r>   r   rs   r   rt   r   r   zAsyncIterator[httpx.Response])r   r   rF   r   r   r   )r   r   r   r   r   r   r&   r/   r4   ra   rm   r{   r   r   r   r   r   s   @r   r   r     s   =G G
! FJ V"$ " ! #'!%!"&#'$(M
 M
 M
 	M

 M
 M
 !M
 M
 M
  M
 !M
 "M
 M
 
M
d  ! #'!%!"&#'L% L% L% 	L%
 L% L% !L% L% L%  L% !L% 
L%b "!  ! $#'!%!"&'+#'#"$(%V  V  V  	V 
 V  V  V  V  V  !V  V  V   V  %V  !V   !V " #V $ "%V & 
'V p  "!  ! $#'!%!"&'+#'#"#X( X( X( 	X(
 X( X( X( X( X( !X( X( X(  X( %X( !X(  !X(" #X($ 
'%X( X(t
r    r   )
__future__r   rx   
contextlibr   r   typingr   r   r   r	   apify_shared.modelsr
   apify_shared.utilsr   r   apify_client.clients.baser   r   httpxapify_shared.typesr   r   r    r    r   <module>r      sD    "  : > > ( N I3h
N h
VR
, R
r    