
    'h5                    .   S SK Jr  S SKrS SKJr  S SKJrJrJrJ	r	  S SK
Jr  S SKJrJr  S SKJr  S SKJr  S S	KJr  S S
KJr  \R.                  " \5         S SKJr  SSS5        \(       a  S SKJrJr  S SKJr  S SK J!r!  SS\SSSSSS SSSSSSS.                                 SS jjr"\" SSSS9\" SSSS9SS\SSSSSS SSSSSSS.                                 SS jj5       5       r#g! , (       d  f       N= f)    )annotationsN)Path)IOTYPE_CHECKINGAnyLiteral)deprecate_renamed_parameter)is_path_or_str_sequencenormalize_filepath)wrap_ldf)N_INFER_DEFAULT)parse_row_index_args)!_init_credential_provider_builder)PyLazyFrame)	DataFrame	LazyFrame)SchemaDefinition)CredentialProviderFunctioni   Fauto   )schemaschema_overridesinfer_schema_length
batch_sizen_rows
low_memoryrechunkrow_index_namerow_index_offsetignore_errorsstorage_optionscredential_providerretriesfile_cache_ttlinclude_file_pathsr   r   c               n    [        XUS5      nA[        U 4UUUUUUUUU	U
UUUUUS.6R                  5       $ )u  
Read into a DataFrame from a newline delimited JSON file.

Parameters
----------
source
    Path to a file or a file-like object (by "file-like object" we refer to objects
    that have a `read()` method, such as a file handler like the builtin `open`
    function, or a `BytesIO` instance). For file-like objects, the stream position
    may not be updated accordingly after reading.
schema : Sequence of str, (str,DataType) pairs, or a {str:DataType,} dict
    The DataFrame schema may be declared in several ways:

    * As a dict of {name:type} pairs; if type is None, it will be auto-inferred.
    * As a list of column names; in this case types are automatically inferred.
    * As a list of (name,type) pairs; this is equivalent to the dictionary form.

    If you supply a list of column names that does not match the names in the
    underlying data, the names given here will overwrite them. The number
    of names given in the schema should match the underlying data dimensions.
schema_overrides : dict, default None
    Support type specification or override of one or more columns; note that
    any dtypes inferred from the schema param will be overridden.
infer_schema_length
    The maximum number of rows to scan for schema inference.
    If set to `None`, the full data may be scanned *(this is slow)*.
batch_size
    Number of rows to read in each batch.
n_rows
    Stop reading from JSON file after reading `n_rows`.
low_memory
    Reduce memory pressure at the expense of performance.
rechunk
    Reallocate to contiguous memory when all chunks/ files are parsed.
row_index_name
    If not None, this will insert a row index column with give name into the
    DataFrame
row_index_offset
    Offset to start the row index column (only use if the name is set)
ignore_errors
    Return `Null` if parsing fails because of schema mismatches.
storage_options
    Options that indicate how to connect to a cloud provider.

    The cloud providers currently supported are AWS, GCP, and Azure.
    See supported keys here:

    * `aws <https://docs.rs/object_store/latest/object_store/aws/enum.AmazonS3ConfigKey.html>`_
    * `gcp <https://docs.rs/object_store/latest/object_store/gcp/enum.GoogleConfigKey.html>`_
    * `azure <https://docs.rs/object_store/latest/object_store/azure/enum.AzureConfigKey.html>`_
    * Hugging Face (`hf://`): Accepts an API key under the `token` parameter: \
      `{'token': '...'}`, or by setting the `HF_TOKEN` environment variable.

    If `storage_options` is not provided, Polars will try to infer the information
    from environment variables.
credential_provider
    Provide a function that can be called to provide cloud storage
    credentials. The function is expected to return a dictionary of
    credential keys along with an optional credential expiry time.

    .. warning::
        This functionality is considered **unstable**. It may be changed
        at any point without it being considered a breaking change.
retries
    Number of retries if accessing a cloud instance fails.
file_cache_ttl
    Amount of time to keep downloaded cloud files since their last access time,
    in seconds. Uses the `POLARS_FILE_CACHE_TTL` environment variable
    (which defaults to 1 hour) if not given.
include_file_paths
    Include the path of the source file(s) as a column with this name.

See Also
--------
scan_ndjson : Lazily read from an NDJSON file or multiple files via glob patterns.

Warnings
--------
Calling `read_ndjson().lazy()` is an antipattern as this forces Polars to
materialize a full ndjson file and therefore cannot push any optimizations into
the reader. Therefore always prefer `scan_ndjson` if you want to work with
`LazyFrame` s.

Examples
--------
>>> from io import StringIO
>>> json_str = '{"foo":1,"bar":6}\n{"foo":2,"bar":7}\n{"foo":3,"bar":8}\n'
>>> pl.read_ndjson(StringIO(json_str))
shape: (3, 2)
┌─────┬─────┐
│ foo ┆ bar │
│ --- ┆ --- │
│ i64 ┆ i64 │
╞═════╪═════╡
│ 1   ┆ 6   │
│ 2   ┆ 7   │
│ 3   ┆ 8   │
└─────┴─────┘
read_ndjson)r   r   r   r   r   r   r   r   r   r    r%   r#   r!   r"   r$   )r   scan_ndjsoncollect)sourcer   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   credential_provider_builders                    cC:\Users\julio\OneDrive\Documentos\Trabajo\Ideas Frescas\venv\Lib\site-packages\polars/io/ndjson.pyr'   r'      sh    | #D_m# 	)/%)#-'7%!" gi#    row_count_namez0.20.4)versionrow_count_offsetc                  / n[        U [        [        45      (       a  [        U SS9n OD[        U [        5      (       a/  [        U 5      (       a  U  V s/ s H  n [        U SS9PM     nn OU nSn US:X  a  Sn[        U5      e[        XUS5      nAU(       a  [	        UR                  5       5      nOSn[        R                  " U UUUUUUUU[        X5      U
UUUUUS9n[        U5      $ s  sn f )aI  
Lazily read from a newline delimited JSON file or multiple files via glob patterns.

This allows the query optimizer to push down predicates and projections to the scan
level, thereby potentially reducing memory overhead.

.. versionchanged:: 0.20.4
    * The `row_count_name` parameter was renamed `row_index_name`.
    * The `row_count_offset` parameter was renamed `row_index_offset`.

Parameters
----------
source
    Path to a file.
schema : Sequence of str, (str,DataType) pairs, or a {str:DataType,} dict
    The DataFrame schema may be declared in several ways:

    * As a dict of {name:type} pairs; if type is None, it will be auto-inferred.
    * As a list of column names; in this case types are automatically inferred.
    * As a list of (name,type) pairs; this is equivalent to the dictionary form.

    If you supply a list of column names that does not match the names in the
    underlying data, the names given here will overwrite them. The number
    of names given in the schema should match the underlying data dimensions.
schema_overrides : dict, default None
    Support type specification or override of one or more columns; note that
    any dtypes inferred from the schema param will be overridden.
infer_schema_length
    The maximum number of rows to scan for schema inference.
    If set to `None`, the full data may be scanned *(this is slow)*.
batch_size
    Number of rows to read in each batch.
n_rows
    Stop reading from JSON file after reading `n_rows`.
low_memory
    Reduce memory pressure at the expense of performance.
rechunk
    Reallocate to contiguous memory when all chunks/ files are parsed.
row_index_name
    If not None, this will insert a row index column with give name into the
    DataFrame
row_index_offset
    Offset to start the row index column (only use if the name is set)
ignore_errors
    Return `Null` if parsing fails because of schema mismatches.
storage_options
    Options that indicate how to connect to a cloud provider.

    The cloud providers currently supported are AWS, GCP, and Azure.
    See supported keys here:

    * `aws <https://docs.rs/object_store/latest/object_store/aws/enum.AmazonS3ConfigKey.html>`_
    * `gcp <https://docs.rs/object_store/latest/object_store/gcp/enum.GoogleConfigKey.html>`_
    * `azure <https://docs.rs/object_store/latest/object_store/azure/enum.AzureConfigKey.html>`_
    * Hugging Face (`hf://`): Accepts an API key under the `token` parameter:           `{'token': '...'}`, or by setting the `HF_TOKEN` environment variable.

    If `storage_options` is not provided, Polars will try to infer the information
    from environment variables.
credential_provider
    Provide a function that can be called to provide cloud storage
    credentials. The function is expected to return a dictionary of
    credential keys along with an optional credential expiry time.

    .. warning::
        This functionality is considered **unstable**. It may be changed
        at any point without it being considered a breaking change.
retries
    Number of retries if accessing a cloud instance fails.
file_cache_ttl
    Amount of time to keep downloaded cloud files since their last access time,
    in seconds. Uses the `POLARS_FILE_CACHE_TTL` environment variable
    (which defaults to 1 hour) if not given.
include_file_paths
    Include the path of the source file(s) as a column with this name.
F)check_not_directoryNr   z('infer_schema_length' should be positiver(   )r   r   r   r   r   r   r   	row_indexr    r%   r#   cloud_optionsr"   r$   )
isinstancestrr   r   listr
   
ValueErrorr   itemsr   new_from_ndjsonr   r   )r*   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   sourcesmsgr+   pylfs                       r,   r(   r(      s   V IKG&3+&&#FF	FD	!	!"6** %$F #6uE$  G
 Ga8o"C_m# 	4467 &&/)&~H#-%7%!D$ D>Ws   C()"r*   cstr | Path | IO[str] | IO[bytes] | bytes | list[str] | list[Path] | list[IO[str]] | list[IO[bytes]]r   SchemaDefinition | Noner   r?   r   
int | Noner   r@   r   r@   r   boolr   rA   r   
str | Noner   intr    rA   r!   dict[str, Any] | Noner"   3CredentialProviderFunction | Literal['auto'] | Noner#   rC   r$   r@   r%   rB   returnr   )"r*   r>   r   r?   r   r?   r   r@   r   r@   r   r@   r   rA   r   rA   r   rB   r   rC   r    rA   r!   rD   r"   rE   r#   rC   r$   r@   r%   rB   rF   r   )$
__future__r   
contextlibpathlibr   typingr   r   r   r   polars._utils.deprecationr	   polars._utils.variousr
   r   polars._utils.wrapr   polars.datatypesr   polars.io._utilsr   ,polars.io.cloud.credential_provider._builderr   suppressImportErrorpolars._plrr   polarsr   r   polars._typingr   polars.io.cloudr   r'   r(    r-   r,   <module>rX      sk   "   2 2 A M ' , 1 %' & +/: '+04&5!!%-1OU!%%)3UU $U .U $U U U  !U" #U$ %U& 'U( )U* ++U, M-U. /U0 1U2 #3U4 5Up -/?R/1CXV '+04&5!!%-1OU!%%)7Y	Y $Y .Y $Y  !Y" #Y$ %Y& 'Y( )Y* +Y, -Y. +/Y0 M1Y2 3Y4 5Y6 #7Y8 9Y W SYG &%s   D
D