| Server IP : 202.61.199.114 / Your IP : 216.73.217.139 Web Server : nginx/1.22.1 System : Linux de.arni-solutions.de 6.1.0-49-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.174-1 (2026-05-26) x86_64 User : web20 ( 1018) PHP Version : 8.4.23 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /tmp/calpy/tinycss2/__pycache__/ |
Upload File : |
�
Υ=j� � �@ � d dl mZmZmZ ddlmZ dd�Z d d�ZdS )
� )�UTF8�decode�lookup� )�parse_stylesheetNc �� � |r!t |� � }|rt | |� � S | � d� � r�| � ddd� � }|dk rp| � d|� � rZt | d|� � d� � � � }|r.|j dv rt | t
� � S t | |� � S |rt | |� � S t | t
� � S ) aB Determine the character encoding of a CSS stylesheet and decode it.
This is based on the presence of a :abbr:`BOM (Byte Order Mark)`,
a ``@charset`` rule, and encoding meta-information.
:type css_bytes: :obj:`bytes`
:param css_bytes: A CSS byte string.
:type protocol_encoding: :obj:`str`
:param protocol_encoding:
The encoding label, if any, defined by HTTP or equivalent protocol.
(e.g. via the ``charset`` parameter of the ``Content-Type`` header.)
:type environment_encoding: :class:`webencodings.Encoding`
:param environment_encoding:
The `environment encoding
<https://www.w3.org/TR/css-syntax/#environment-encoding>`_, if any.
:returns:
A 2-tuple of a decoded Unicode string and the
:class:`webencodings.Encoding` object that was used.
s
@charset "� "�
�d ���s ";�latin1)zutf-16bezutf-16le)r r �
startswith�find�namer )� css_bytes�protocol_encoding�environment_encoding�fallback� end_quotes �A/tmp/claude-1015/pip-target-jmvfl800/lib/python/tinycss2/bytes.py�decode_stylesheet_bytesr s� � �. � /��+�,�,��� /��)�X�.�.�.����M�*�*� 3� �N�N�4��S�1�1� ���?�?�y�3�3�E�9�E�E�?��i��9��5�<�<�X�F�F�G�G�H��
3��=�$<�<�<�!�)�T�2�2�2��i��2�2�2�� 7��i�!5�6�6�6��)�T�"�"�"� Fc �T � t | ||� � \ }}t |||� � }||fS )a} Parse :diagram:`stylesheet` from bytes,
determining the character encoding as web browsers do.
This is used when reading a file or fetching a URL.
The character encoding is determined from the initial bytes
(a :abbr:`BOM (Byte Order Mark)` or a ``@charset`` rule)
as well as the parameters. The ultimate fallback is UTF-8.
:type css_bytes: :obj:`bytes`
:param css_bytes: A CSS byte string.
:type protocol_encoding: :obj:`str`
:param protocol_encoding:
The encoding label, if any, defined by HTTP or equivalent protocol.
(e.g. via the ``charset`` parameter of the ``Content-Type`` header.)
:type environment_encoding: :class:`webencodings.Encoding`
:param environment_encoding:
The `environment encoding`_, if any.
:type skip_comments: :obj:`bool`
:param skip_comments:
Ignore CSS comments at the top-level of the stylesheet.
If the input is a string, ignore all comments.
:type skip_whitespace: :obj:`bool`
:param skip_whitespace:
Ignore whitespace at the top-level of the stylesheet.
Whitespace is still preserved
in the :attr:`~tinycss2.ast.QualifiedRule.prelude`
and the :attr:`~tinycss2.ast.QualifiedRule.content` of rules.
:returns:
A ``(rules, encoding)`` tuple.
* ``rules`` is a list of
:class:`~tinycss2.ast.QualifiedRule`,
:class:`~tinycss2.ast.AtRule`,
:class:`~tinycss2.ast.Comment` (if ``skip_comments`` is false),
:class:`~tinycss2.ast.WhitespaceToken`
(if ``skip_whitespace`` is false),
and :class:`~tinycss2.ast.ParseError` objects.
* ``encoding`` is the :class:`webencodings.Encoding` object
that was used.
If ``rules`` contains an ``@import`` rule, this is
the `environment encoding`_ for the imported stylesheet.
.. _environment encoding:
https://www.w3.org/TR/css-syntax/#environment-encoding
.. code-block:: python
response = urlopen('http://example.net/foo.css')
rules, encoding = parse_stylesheet_bytes(
css_bytes=response.read(),
# Python 3.x
protocol_encoding=response.info().get_content_type().get_param('charset'),
# Python 2.x
protocol_encoding=response.info().gettype().getparam('charset'),
)
for rule in rules:
...
)r r )r r r �
skip_comments�skip_whitespace�css_unicode�encoding�
stylesheets r �parse_stylesheet_bytesr 0 s>