Your IP : 3.21.247.61
B
+�[b � @ s� d dl mZmZmZmZ ddlmZ ddlmZ dd� Z G dd� de
�Ze�e� e�e� e�e� e�e� d d
� Z
dd� Zee� �Zd
S )� )� Container�Iterable�Sized�Hashable� )�reduce)�pmapc C s | � || �|d�d �S )Nr r )�set�get)Zcounters�element� r �C/opt/alt/python37/lib64/python3.7/site-packages/pyrsistent/_pbag.py�_add_to_counters s r c @ s� e Zd ZdZdZdd� Zdd� Zdd� Zd d
� Zdd� Z d
d� Z
dd� Zdd� Zdd� Z
dd� Zdd� ZeZeZeZdd� Zdd� Zdd� Zdd � Zd!d"� Zd#S )$�PBaga�
A persistent bag/multiset type.
Requires elements to be hashable, and allows duplicates, but has no
ordering. Bags are hashable.
Do not instantiate directly, instead use the factory functions :py:func:`b`
or :py:func:`pbag` to create an instance.
Some examples:
>>> s = pbag([1, 2, 3, 1])
>>> s2 = s.add(4)
>>> s3 = s2.remove(1)
>>> s
pbag([1, 1, 2, 3])
>>> s2
pbag([1, 1, 2, 3, 4])
>>> s3
pbag([1, 2, 3, 4])
)�_counts�__weakref__c C s
|| _ d S )N)r )�self�countsr r r
�__init__# s z
PBag.__init__c C s t t| j|��S )z�
Add an element to the bag.
>>> s = pbag([1])
>>> s2 = s.add(1)
>>> s3 = s.add(2)
>>> s2
pbag([1, 1])
>>> s3
pbag([1, 2])
)r r r )r r r r r
�add&