관리-도구
편집 파일: _helpers.cpython-37.pyc
B ��@[� � @ s` d dl mZ d dlZd dlmZmZ d dlmZmZ d dl m Z mZ dd� Zdd � Z d d� ZdS )� )�wrapsN)�PMap�pmap)�PSet�pset)�PVector�pvectorc C sl t | �}|tkr,ttdd� t�| �D ���S |tkrBttt| ��S |t krXt tt| ��S |t krht| �S | S )a Recursively convert simple Python containers into pyrsistent versions of those containers. - list is converted to pvector, recursively - dict is converted to pmap, recursively on values (but not keys) - set is converted to pset, but not recursively - tuple is converted to tuple, recursively. Sets and dict keys are not recursively frozen because they do not contain mutable data by convention. The main exception to this rule is that dict keys and set elements are often instances of mutable objects that support hash-by-id, which this function can't convert anyway. >>> freeze(set([1, 2])) pset([1, 2]) >>> freeze([1, {'a': 3}]) pvector([1, pmap({'a': 3})]) >>> freeze((1, [])) (1, pvector([])) c s s | ]\}}|t |�fV qd S )N)�freeze)�.0�k�v� r �F/opt/alt/python37/lib64/python3.7/site-packages/pyrsistent/_helpers.py� <genexpr> s zfreeze.<locals>.<genexpr>)�type�dictr �six� iteritems�listr �mapr �tuple�setr )�o�typr r r r s r c C sh t | t�rttt| ��S t | t�r8tdd� | �� D ��S t | t�rJt | �S t | �tkrdttt| ��S | S )a� Recursively convert pyrsistent containers into simple Python containers. - pvector is converted to list, recursively - pmap is converted to dict, recursively on values (but not keys) - pset is converted to set, but not recursively - tuple is converted to tuple, recursively. >>> from pyrsistent import s, m, v >>> thaw(s(1, 2)) set([1, 2]) >>> thaw(v(1, m(a=3))) [1, {'a': 3}] >>> thaw((1, v())) (1, []) c s s | ]\}}|t |�fV qd S )N)�thaw)r r r r r r r >