# uproot.HTTPSource

Defined in uproot.source.http on line 555.

Inheritance order:
uproot.source.chunk.Source

class uproot.source.http.HTTPSource(file_path: str, **options)
  Parameters:

    - file_path (str) – A URL of the file to open.

    - options – Must include `"num_fallback_workers"`, `"use_threads"`, and `"timeout"`.

  A uproot.source.chunk.Source that first attempts an HTTP(S) multipart GET, but if the server doesn’t support it, it falls back to many HTTP(S) connections in threads (uproot.MultithreadedHTTPSource).

  Since the multipart GET is a single request and response, it needs only one thread, but it is a background thread (a single uproot.source.futures.ResourceWorker in a uproot.source.futures.ResourceThreadPoolExecutor).

## executor

HTTPSource.executor

  The uproot.source.futures.ResourceThreadPoolExecutor that manages this source’s single background thread.

## timeout

HTTPSource.timeout

  The timeout in seconds or None.

## parsed_url

HTTPSource.parsed_url

  A `urllib.parse.ParseResult` version of the `file_path`.

## auth_headers

HTTPSource.auth_headers

  Dict containing auth headers, if any

## fallback

HTTPSource.fallback

  If None, the source has not encountered an unsuccessful multipart GET and no fallback is needed yet.

  Otherwise, this is a uproot.MultithreadedHTTPSource to which all requests are forwarded.

## chunk

Inherited from uproot.source.chunk.Source.

HTTPSource.chunk(start: int, stop: int) → Chunk
  Parameters:

    - start (int) – Seek position of the first byte to include.

    - stop (int) – Seek position of the first byte to exclude (one greater than the last byte to include).

  Request a byte range of data from the file as a uproot.source.chunk.Chunk.

## chunks

Inherited from uproot.source.chunk.Source.

HTTPSource.chunks(ranges: list[int, int], notifications: Queue) → list[Chunk]
  Parameters:

    - ranges (list of (int, int) 2-tuples) – Intervals to fetch as (start, stop) pairs in a single request, if possible.

    - notifications (`queue.Queue`) – Indicator of completed chunks. After each gets filled, it is `put` on the queue; a listener should `get` from this queue `len(ranges)` times.

  Request a set of byte ranges from the file.

  This method has two outputs:

  - The method returns a list of unfilled uproot.source.chunk.Chunk objects, which get filled in a background thread. If you try to read data from an unfilled chunk, it will wait until it is filled.

  - The method also puts the same uproot.source.chunk.Chunk objects onto the `notifications` queue as soon as they are filled.

  Reading data from chunks on the queue can be more efficient than reading them from the returned list. The total reading time is the same, but work on the filled chunks can be better parallelized if it is triggered by already-filled chunks, rather than waiting for chunks to be filled.

## file_path

Inherited from uproot.source.chunk.Source.

HTTPSource.file_path

  A path to the file (or URL).

## num_bytes

Inherited from uproot.source.chunk.Source.

HTTPSource.num_bytes

## num_requests

Inherited from uproot.source.chunk.Source.

HTTPSource.num_requests

  The number of requests that have been made (performance counter).

## num_requested_chunks

Inherited from uproot.source.chunk.Source.

HTTPSource.num_requested_chunks

  The number of uproot.source.chunk.Chunk objects that have been requested (performance counter).

## num_requested_bytes

Inherited from uproot.source.chunk.Source.

HTTPSource.num_requested_bytes

  The number of bytes that have been requested (performance counter).

## performance_counters

Inherited from uproot.source.chunk.Source.

HTTPSource.performance_counters

## close

Inherited from uproot.source.chunk.Source.

HTTPSource.close()

  Manually closes the file(s) and stops any running threads.

## closed

Inherited from uproot.source.chunk.Source.

HTTPSource.closed