__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

www-data@216.73.216.65: ~ $
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
# Copyright (c) 2011 Daniel Gerber.
#
#This program is free software: you can redistribute it and/or modify
#it under the terms of the GNU General Public License as published by
#the Free Software Foundation, either version 3 of the License, or
#(at your option) any later version.
#
#This program is distributed in the hope that it will be useful,
#but WITHOUT ANY WARRANTY; without even the implied warranty of
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#GNU General Public License for more details.
#
#You should have received a copy of the GNU General Public License
#along with this program.  If not, see <http://www.gnu.org/licenses/>.

r"""
Parsing and validation of URIs (RFC 3986) and IRIs (RFC 3987).

This module provides regular expressions according to `RFC 3986 "Uniform
Resource Identifier (URI): Generic Syntax"
<http://tools.ietf.org/html/rfc3986>`_ and `RFC 3987 "Internationalized
Resource Identifiers (IRIs)" <http://tools.ietf.org/html/rfc3987>`_, and
utilities for composition and relative resolution of references.


API
---

**match** (string, rule='IRI_reference')
    {match.__doc__}

**parse** (string, rule='IRI_reference')
    {parse.__doc__}

**compose** (\*\*parts)
    {compose.__doc__}

**resolve** (base, uriref, strict=True, return_parts=False)
    {resolve.__doc__}

**patterns**
    A dict of regular expressions with useful group names.
    Compilable (with regex_ only) without need for any particular compilation
    flag.

**[bmp_][u]patterns[_no_names]**
    Alternative versions of `patterns`.
    [u]nicode strings without group names for the re_ module.
    BMP only for narrow builds.

**get_compiled_pattern** (rule, flags=0)
    {get_compiled_pattern.__doc__}

**format_patterns** (\*\*names)
    {format_patterns.__doc__}


Dependencies
------------

Some features require regex_.

This package's docstrings are tested on python 2.6, 2.7, and 3.2 to 3.6.
Note that in python<=3.2, characters beyond the Basic Multilingual Plane are
not supported on narrow builds (see `issue12729
<http://bugs.python.org/issue12729>`_).


Release notes
-------------

version 1.3.8:

- fixed deprecated escape sequence

version 1.3.6:

- fixed a bug in IPv6 pattern:

  >>> assert match('::0:0:0:0:0.0.0.0', 'IPv6address')

version 1.3.4:

- allowed for lower case percent encoding

version 1.3.3:

- fixed a bug in `resolve` which left "../" at the beginning of some paths

version 1.3.2:

- convenience function `match`
- patterns restricted to the BMP for narrow builds
- adapted doctests for python 3.3
- compatibility with python 2.6 (thanks to Thijs Janssen)

version 1.3.1:

- some re_ compatibility: get_compiled_pattern, parse
- dropped regex_ from setup.py requirements

version 1.3.0:

- python 3.x compatibility
- format_patterns

version 1.2.1:

- compose, resolve


.. _re: http://docs.python.org/library/re
.. _regex: http://pypi.python.org/pypi/regex


Support
-------
This is free software. You may show your appreciation with a `donation`_.

.. _donation: http://danielgerber.net/ยค#Thanks-for-python-package-rfc3987

"""
__version__ = '1.3.8'

import sys as _sys

NARROW_BUILD = _sys.maxunicode == 0xffff

try:
    basestring
except NameError:
    basestring = str

try:
    import regex as _re
    REGEX = True
except ImportError:
    import re as _re
    REGEX = False

__all__ = ('get_compiled_pattern', 'parse', 'format_patterns', 'patterns',
           'compose', 'resolve', 'match')


_common_rules = (

    ########   SCHEME   ########
    ('scheme',       r"[a-zA-Z][a-zA-Z0-9+.-]*"),

    ########   PORT   ########
    ('port',         r"[0-9]*"),

    ########   IP ADDRESSES   ########
    ('IP_literal',   r"\[(?:{IPv6address}|{IPvFuture})\]"),
    ('IPv6address', (r"(?:                             (?:{h16}:){{6}} {ls32}"
                     r"|                            :: (?:{h16}:){{5}} {ls32}"
                     r"| (?:                {h16})? :: (?:{h16}:){{4}} {ls32}"
                     r"| (?:(?:{h16}:)?     {h16})? :: (?:{h16}:){{3}} {ls32}"
                     r"| (?:(?:{h16}:){{,2}}{h16})? :: (?:{h16}:){{2}} {ls32}"
                     r"| (?:(?:{h16}:){{,3}}{h16})? :: (?:{h16}:)      {ls32}"
                     r"| (?:(?:{h16}:){{,4}}{h16})? ::                 {ls32}"
                     r"| (?:(?:{h16}:){{,5}}{h16})? ::                 {h16} "
                     r"| (?:(?:{h16}:){{,6}}{h16})? ::                      )"
                      ).replace(' ', '')),
    ('ls32',         r"(?:{h16}:{h16}|{IPv4address})"),
    ('h16',          r"{hexdig}{{1,4}}"),
    ('IPv4address',  r"(?:{dec_octet}\.){{3}}{dec_octet}"),
    ('dec_octet',    r"(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)"),
    ('IPvFuture',    r"v{hexdig}+\.(?:{unreserved}|{sub_delims}|:)+"),

    ########  CHARACTER CLASSES   ########
    ('unreserved',    r"[a-zA-Z0-9_.~-]"),
    ('reserved',      r"(?:{gen_delims}|{sub_delims})"),
    ('pct_encoded',   r"%{hexdig}{{2}}"),
    ('gen_delims',    r"[:/?#[\]@]"),
    ('sub_delims',    r"[!$&'()*+,;=]"),
    ('hexdig',        r"[0-9A-Fa-f]"),

)


_uri_rules = (

    ########   REFERENCES   ########
    ('URI_reference',   r"(?:{URI}|{relative_ref})"),
    ('URI',             r"{absolute_URI}(?:\#{fragment})?"),
    ('absolute_URI',    r"{scheme}:{hier_part}(?:\?{query})?"),
    ('relative_ref',    r"{relative_part}(?:\?{query})?(?:\#{fragment})?"),

    ('hier_part',      (r"(?://{authority}{path_abempty}"
                        r"|{path_absolute}|{path_rootless}|{path_empty})")),
    ('relative_part',  (r"(?://{authority}{path_abempty}"
                        r"|{path_absolute}|{path_noscheme}|{path_empty})")),

    ########   AUTHORITY   ########
    ('authority', r"(?:{userinfo}@)?{host}(?::{port})?"),
    ('host',      r"(?:{IP_literal}|{IPv4address}|{reg_name})"),
    ('userinfo',  r"(?:{unreserved}|{pct_encoded}|{sub_delims}|:)*"),
    ('reg_name',  r"(?:{unreserved}|{pct_encoded}|{sub_delims})*"),

    ########   PATH   ########
    ('path',         (r"(?:{path_abempty}|{path_absolute}|{path_noscheme}"
                      r"|{path_rootless}|{path_empty})")),
    ('path_abempty',  r"(?:/{segment})*"),
    ('path_absolute', r"/(?:{segment_nz}(?:/{segment})*)?"),
    ('path_noscheme', r"{segment_nz_nc}(?:/{segment})*"),
    ('path_rootless', r"{segment_nz}(?:/{segment})*"),
    ('path_empty',    r""),

    ('segment',       r"{pchar}*"),
    ('segment_nz',    r"{pchar}+"),
    ('segment_nz_nc', r"(?:{unreserved}|{pct_encoded}|{sub_delims}|@)+"),

    ########   QUERY   ########
    ('query',         r"(?:{pchar}|/|\?)*"),

    ########   FRAGMENT   ########
    ('fragment',      r"(?:{pchar}|/|\?)*"),

    ########  CHARACTER CLASSES   ########
    ('pchar',         r"(?:{unreserved}|{pct_encoded}|{sub_delims}|:|@)"),

)


#: http://tools.ietf.org/html/rfc3987
#: January 2005
_iri_rules = (

    ########   REFERENCES   ########
    ('IRI_reference',   r"(?:{IRI}|{irelative_ref})"),
    ('IRI',             r"{absolute_IRI}(?:\#{ifragment})?"),
    ('absolute_IRI',    r"{scheme}:{ihier_part}(?:\?{iquery})?"),
    ('irelative_ref',  (r"(?:{irelative_part}"
                        r"(?:\?{iquery})?(?:\#{ifragment})?)")),

    ('ihier_part',     (r"(?://{iauthority}{ipath_abempty}"
                        r"|{ipath_absolute}|{ipath_rootless}|{ipath_empty})")),
    ('irelative_part', (r"(?://{iauthority}{ipath_abempty}"
                        r"|{ipath_absolute}|{ipath_noscheme}|{ipath_empty})")),


    ########   AUTHORITY   ########
    ('iauthority', r"(?:{iuserinfo}@)?{ihost}(?::{port})?"),
    ('iuserinfo',  r"(?:{iunreserved}|{pct_encoded}|{sub_delims}|:)*"),
    ('ihost',      r"(?:{IP_literal}|{IPv4address}|{ireg_name})"),

    ('ireg_name',  r"(?:{iunreserved}|{pct_encoded}|{sub_delims})*"),

    ########   PATH   ########
    ('ipath',         (r"(?:{ipath_abempty}|{ipath_absolute}|{ipath_noscheme}"
                       r"|{ipath_rootless}|{ipath_empty})")),

    ('ipath_empty',    r""),
    ('ipath_rootless', r"{isegment_nz}(?:/{isegment})*"),
    ('ipath_noscheme', r"{isegment_nz_nc}(?:/{isegment})*"),
    ('ipath_absolute', r"/(?:{isegment_nz}(?:/{isegment})*)?"),
    ('ipath_abempty',  r"(?:/{isegment})*"),

    ('isegment_nz_nc', r"(?:{iunreserved}|{pct_encoded}|{sub_delims}|@)+"),
    ('isegment_nz',    r"{ipchar}+"),
    ('isegment',       r"{ipchar}*"),

    ########   QUERY   ########
    ('iquery',    r"(?:{ipchar}|{iprivate}|/|\?)*"),

    ########   FRAGMENT   ########
    ('ifragment', r"(?:{ipchar}|/|\?)*"),

    ########   CHARACTER CLASSES   ########
    ('ipchar',      r"(?:{iunreserved}|{pct_encoded}|{sub_delims}|:|@)"),
    ('iunreserved', r"(?:[a-zA-Z0-9._~-]|{ucschar})"),
    ('iprivate', r"[\uE000-\uF8FF\U000F0000-\U000FFFFD\U00100000-\U0010FFFD]"),
    ('ucschar', (r"[\xA0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF"
                 r"\U00010000-\U0001FFFD\U00020000-\U0002FFFD"
                 r"\U00030000-\U0003FFFD\U00040000-\U0004FFFD"
                 r"\U00050000-\U0005FFFD\U00060000-\U0006FFFD"
                 r"\U00070000-\U0007FFFD\U00080000-\U0008FFFD"
                 r"\U00090000-\U0009FFFD\U000A0000-\U000AFFFD"
                 r"\U000B0000-\U000BFFFD\U000C0000-\U000CFFFD"
                 r"\U000D0000-\U000DFFFD\U000E1000-\U000EFFFD]")),

)


def format_patterns(**names):
    r"""Returns a dict of patterns (regular expressions) keyed by
    `rule names for URIs`_ and `rule names for IRIs`_.

    See also the module level dicts of patterns, and `get_compiled_pattern`.

    To wrap a rule in a named capture group, pass it as keyword argument:
    rule_name='group_name'. By default, the formatted patterns contain no
    named groups.

    Patterns are `str` instances (be it in python 2.x or 3.x) containing ASCII
    characters only.

    Caveats:

      - with re_, named capture groups cannot occur on multiple branches of an
        alternation

      - with re_ before python 3.3, ``\u`` and ``\U`` escapes must be
        preprocessed (see `issue3665 <http://bugs.python.org/issue3665>`_)

      - on narrow builds, character ranges beyond BMP are not supported

    .. _rule names for URIs: http://tools.ietf.org/html/rfc3986#appendix-A
    .. _rule names for IRIs: http://tools.ietf.org/html/rfc3987#section-2.2
    """
    formatted = {}
    for name, pat in _common_rules[::-1] + _uri_rules[::-1] + _iri_rules[::-1]:
        if name in names:
            n = names[name]
            if callable(n):
                pat = n(pat)
            else:
                pat = '(?P<%s>%s)' % (n, pat)
        formatted[name] = pat.format(**formatted)
    return formatted


_GROUP_NAMES_BASE = [
        'scheme', 'port',
        'IPv6address', 'IPv4address', 'IPvFuture',
        'URI_reference',
        'URI', 'absolute_URI', 'relative_ref', 'relative_part',
        'authority', 'host', 'userinfo', 'reg_name',
        'query', 'fragment',
        'IRI_reference',
        'IRI', 'absolute_IRI', 'irelative_ref', 'irelative_part',
        'iauthority', 'ihost', 'iuserinfo', 'ireg_name',
        'iquery', 'ifragment'
        ]

DEFAULT_GROUP_NAMES = dict(zip(_GROUP_NAMES_BASE,_GROUP_NAMES_BASE),
    path_abempty='path', path_absolute='path', path_noscheme='path',
    path_rootless='path', path_empty='path',
    ipath_abempty='ipath', ipath_absolute='ipath', ipath_noscheme='ipath',
    ipath_rootless='ipath', ipath_empty='ipath')

#: mapping of rfc3986 / rfc3987 rule names to regular expressions
patterns = format_patterns(**DEFAULT_GROUP_NAMES)


def _interpret_unicode_escapes(string):
    return string.encode('ascii').decode('raw-unicode-escape')

patterns_no_names = format_patterns()

# if not REGEX:
#: patterns compilable with re
upatterns_no_names = dict((k, _interpret_unicode_escapes(v)) for k,v
                          in format_patterns().items())

_bmp = lambda s: _re.sub(r'\\U[0-9A-F]{8}-\\U[0-9A-F]{8}', '', s)
#: patterns restricted to the basic multilingual plane
#: compilable on narrow build
bmp_patterns = dict((k, _bmp(v)) for k,v in patterns.items())
#: compilable on narrow build with re
bmp_upatterns_no_names = dict((k, _interpret_unicode_escapes(_bmp(v)))
                              for k,v in patterns_no_names.items())


def get_compiled_pattern(rule, flags=0):
    """Returns a compiled pattern object for a rule name or template string.

    Usage for validation::

        >>> uri = get_compiled_pattern('^%(URI)s$')
        >>> assert uri.match('http://tools.ietf.org/html/rfc3986#appendix-A')
        >>> assert not get_compiled_pattern('^%(relative_ref)s$').match('#f#g')
        >>> from unicodedata import lookup
        >>> smp = 'urn:' + lookup('OLD ITALIC LETTER A')  # U+00010300
        >>> assert not uri.match(smp)
        >>> m = get_compiled_pattern('^%(IRI)s$').match(smp)

    On narrow builds, non-BMP characters are (incorrectly) excluded::

        >>> assert NARROW_BUILD == (not m)

    For parsing, some subcomponents are captured in named groups (*only if*
    regex_ is available, otherwise see `parse`)::

        >>> match = uri.match('http://tools.ietf.org/html/rfc3986#appendix-A')
        >>> d = match.groupdict()
        >>> if REGEX:
        ...     assert all([ d['scheme'] == 'http',
        ...                  d['authority'] == 'tools.ietf.org',
        ...                  d['path'] == '/html/rfc3986',
        ...                  d['query'] == None,
        ...                  d['fragment'] == 'appendix-A' ])

        >>> for r in patterns.keys():
        ...     assert get_compiled_pattern(r)

    """
    cache, key = get_compiled_pattern.cache, (rule, flags)
    if key not in cache:
        if NARROW_BUILD:
            pats = bmp_patterns if REGEX else bmp_upatterns_no_names
        else:
            pats = patterns if REGEX else upatterns_no_names
        p = pats.get(rule) or rule % pats
        cache[key] = _re.compile(p, flags)
    return cache[key]
get_compiled_pattern.cache = {}


def match(string, rule='IRI_reference'):
    """Convenience function for checking if `string` matches a specific rule.

    Returns a match object or None::

        >>> assert match('%C7X', 'pct_encoded') is None
        >>> assert match('%C7', 'pct_encoded')
        >>> assert match('%c7', 'pct_encoded')

    """
    return get_compiled_pattern('^%%(%s)s$' % rule).match(string)


#: http://tools.ietf.org/html/rfc3986#appendix-B
_iri_non_validating_re = _re.compile(
    r"^((?P<scheme>[^:/?#]+):)?(//(?P<authority>[^/?#]*))?"
    r"(?P<path>[^?#]*)(\?(?P<query>[^#]*))?(#(?P<fragment>.*))?")

REFERENCE_RULES = ('IRI_reference', 'IRI', 'absolute_IRI',
                   'irelative_ref', 'irelative_part',
                   'URI_reference', 'URI', 'absolute_URI',
                   'relative_ref', 'relative_part')

def parse(string, rule='IRI_reference'):
    """Parses `string` according to `rule` into a dict of subcomponents.

    If `rule` is None, parse an IRI_reference `without validation
    <http://tools.ietf.org/html/rfc3986#appendix-B>`_.

    If regex_ is available, any rule is supported; with re_, `rule` must be
    'IRI_reference' or some special case thereof ('IRI', 'absolute_IRI',
    'irelative_ref', 'irelative_part', 'URI_reference', 'URI', 'absolute_URI',
    'relative_ref', 'relative_part'). ::

        >>> d = parse('http://tools.ietf.org/html/rfc3986#appendix-A',
        ...           rule='URI')
        >>> assert all([ d['scheme'] == 'http',
        ...              d['authority'] == 'tools.ietf.org',
        ...              d['path'] == '/html/rfc3986',
        ...              d['query'] == None,
        ...              d['fragment'] == 'appendix-A' ])

    """
    if not REGEX and rule and rule not in REFERENCE_RULES:
        raise ValueError(rule)
    if rule:
        m = match(string, rule)
        if not m:
            raise ValueError('%r is not a valid %r.' % (string, rule))
        if REGEX:
            return _i2u(m.groupdict())
    return _i2u(_iri_non_validating_re.match(string).groupdict())


def _i2u(dic):
    for (name, iname) in [('authority', 'iauthority'), ('path', 'ipath'),
                          ('query', 'iquery'), ('fragment', 'ifragment')]:
        if dic.get(name) is None:
            dic[name] = dic.get(iname)
    return dic


def compose(scheme=None, authority=None, path=None, query=None, fragment=None,
            iauthority=None, ipath=None, iquery=None, ifragment=None, **kw):
    """Returns an URI composed_ from named parts.

    .. _composed: http://tools.ietf.org/html/rfc3986#section-5.3
    """
    _i2u(locals())
    res = ''
    if scheme is not None:
        res += scheme + ':'
    if authority is not None:
        res += '//' + authority
    res += path or ''
    if query is not None:
        res += '?' + query
    if fragment is not None:
        res += '#' + fragment
    return res


_dot_segments = get_compiled_pattern(r'^(?:\.{1,2}(?:/|$))+|(?<=/)\.(?:/|$)')
_2dots_segments = get_compiled_pattern(r'/?%(segment)s/\.{2}(?:/|$)')

def _remove_dot_segments(path):
    path =  _dot_segments.sub('', path)
    c = 1
    while c:
        path, c =  _2dots_segments.subn('/', path, 1)
    return path


def resolve(base, uriref, strict=True, return_parts=False):
    """Resolves_ an `URI reference` relative to a `base` URI.

    `Test cases <http://tools.ietf.org/html/rfc3986#section-5.4>`_::

        >>> base = resolve.test_cases_base
        >>> for relative, resolved in resolve.test_cases.items():
        ...     assert resolve(base, relative) == resolved

    If `return_parts` is True, returns a dict of named parts instead of
    a string.

    Examples::

        >>> assert resolve('urn:rootless', '../../name') == 'urn:name'
        >>> assert resolve('urn:root/less', '../../name') == 'urn:/name'
        >>> assert resolve('http://a/b', 'http:g') == 'http:g'
        >>> assert resolve('http://a/b', 'http:g', strict=False) == 'http://a/g'

    .. _Resolves: http://tools.ietf.org/html/rfc3986#section-5.2

    """
    #base = normalize(base)
    if isinstance(base, basestring):
        B = parse(base, 'IRI')
    else:
        B = _i2u(dict(base))
    if not B.get('scheme'):
        raise ValueError('Expected an IRI (with scheme), not %r.' % base)

    if isinstance(uriref, basestring):
        R = parse(uriref, 'IRI_reference')
    else:
        R = _i2u(dict(uriref))

    # _last_segment = get_compiled_pattern(r'(?<=^|/)%(segment)s$')

    if R['scheme'] and (strict or R['scheme'] != B['scheme']):
        T = R
    else:
        T = {}
        T['scheme'] = B['scheme']
        if R['authority'] is not None:
            T['authority'] = R['authority']
            T['path'] = R['path']
            T['query'] = R['query']
        else:
            T['authority'] = B['authority']
            if R['path']:
                if R['path'][:1] == "/":
                    T['path'] = R['path']
                elif B['authority'] is not None and not B['path']:
                    T['path'] = '/%s' % R['path']
                else:
                    T['path'] = ''.join(B['path'].rpartition('/')[:2]) + R['path']
                    # _last_segment.sub(R['path'], B['path'])
                T['query'] = R['query']
            else:
                T['path'] = B['path']
                if R['query'] is not None:
                    T['query'] = R['query']
                else:
                    T['query'] = B['query']
        T['fragment'] = R['fragment']
    T['path'] = _remove_dot_segments(T['path'])
    if return_parts:
        return T
    else:
        return compose(**T)

resolve.test_cases_base = "http://a/b/c/d;p?q"
resolve.test_cases = {
    "g:h"           :  "g:h",
    "g"             :  "http://a/b/c/g",
    "./g"           :  "http://a/b/c/g",
    "g/"            :  "http://a/b/c/g/",
    "/g"            :  "http://a/g",
    "//g"           :  "http://g",
    "?y"            :  "http://a/b/c/d;p?y",
    "g?y"           :  "http://a/b/c/g?y",
    "#s"            :  "http://a/b/c/d;p?q#s",
    "g#s"           :  "http://a/b/c/g#s",
    "g?y#s"         :  "http://a/b/c/g?y#s",
    ";x"            :  "http://a/b/c/;x",
    "g;x"           :  "http://a/b/c/g;x",
    "g;x?y#s"       :  "http://a/b/c/g;x?y#s",
    ""              :  "http://a/b/c/d;p?q",
    "."             :  "http://a/b/c/",
    "./"            :  "http://a/b/c/",
    ".."            :  "http://a/b/",
    "../"           :  "http://a/b/",
    "../g"          :  "http://a/b/g",
    "../.."         :  "http://a/",
    "../../"        :  "http://a/",
    "../../g"       :  "http://a/g",
    "../../../g"    :  "http://a/g",
    "../../../../g" :  "http://a/g",
    "/./g"          :  "http://a/g",
    "/../g"         :  "http://a/g",
    "g."            :  "http://a/b/c/g.",
    ".g"            :  "http://a/b/c/.g",
    "g.."           :  "http://a/b/c/g..",
    "..g"           :  "http://a/b/c/..g",
    "./../g"        :  "http://a/b/g",
    "./g/."         :  "http://a/b/c/g/",
    "g/./h"         :  "http://a/b/c/g/h",
    "g/../h"        :  "http://a/b/c/h",
    "g;x=1/./y"     :  "http://a/b/c/g;x=1/y",
    "g;x=1/../y"    :  "http://a/b/c/y",
    "g?y/./x"       :  "http://a/b/c/g?y/./x",
    "g?y/../x"      :  "http://a/b/c/g?y/../x",
    "g#s/./x"       :  "http://a/b/c/g#s/./x",
    "g#s/../x"      :  "http://a/b/c/g#s/../x",
    }


def normalize(uri):
    "Syntax-Based Normalization"
    # TODO:
    raise NotImplementedError


if __name__ == '__main__':
    if not _sys.argv[1:]:
        print('Valid arguments are "--all" or rule names from:')
        print('  '.join(sorted(patterns)))
    elif _sys.argv[1] == '--all':
        for name in patterns:
            print(name + ':')
            print(patterns[name])
    else:
        for name in _sys.argv[1:]:
            print(patterns[name])

Filemanager

Name Type Size Permission Actions
ConfigArgParse-1.7.egg-info Folder 0755
Cryptodome Folder 0755
Jetson-stubs Folder 0755
MarkupSafe-2.1.5.egg-info Folder 0755
MySQLdb-stubs Folder 0755
OpenEXR-1.3.10.egg-info Folder 0755
OpenGL Folder 0755
OpenSSL Folder 0755
OpenSSL-stubs Folder 0755
PIL Folder 0755
PyGObject-3.50.0.dist-info Folder 0755
PyICU-2.14.egg-info Folder 0755
PyInstaller-stubs Folder 0755
PyQt5 Folder 0755
PyQt5-5.15.11.dist-info Folder 0755
PyQt5_sip-12.17.0.dist-info Folder 0755
PyYAML-6.0.2.dist-info Folder 0755
RPi Folder 0755
RPi-stubs Folder 0755
RPiKeyboardConfig Folder 0755
RTIMULib-7.2.1.egg-info Folder 0755
Send2Trash-1.8.3.dist-info Folder 0755
Xlib-stubs Folder 0755
__pycache__ Folder 0755
_cffi_backend-stubs Folder 0755
_distutils_hack Folder 0755
_win32typing-stubs Folder 0755
_yaml Folder 0755
acme Folder 0755
acme-4.0.0.egg-info Folder 0755
aiofiles-stubs Folder 0755
antlr4-stubs Folder 0755
anyio Folder 0755
anyio-4.8.0.dist-info Folder 0755
apt Folder 0755
apt_inst-stubs Folder 0755
apt_listchanges Folder 0755
apt_listchanges-4.8.dist-info Folder 0755
apt_pkg-stubs Folder 0755
aptsources Folder 0755
arrow Folder 0755
arrow-1.3.0.dist-info Folder 0755
assertpy-stubs Folder 0755
astroid Folder 0755
astroid-3.3.8.dist-info Folder 0755
asttokens Folder 0755
asttokens-3.0.0.dist-info Folder 0755
atheris-stubs Folder 0755
attr Folder 0755
attrs Folder 0755
attrs-25.3.0.dist-info Folder 0755
augeas Folder 0755
autocommand Folder 0755
autocommand-2.2.2.dist-info Folder 0755
av Folder 0755
av-14.2.0.dist-info Folder 0755
aws_xray_sdk-stubs Folder 0755
babel Folder 0755
babel-2.17.0.egg-info Folder 0755
bcrypt Folder 0755
bcrypt-4.2.0.dist-info Folder 0755
beautifulsoup4-4.13.4.dist-info Folder 0755
bleach-stubs Folder 0755
blinker Folder 0755
blinker-1.9.0.dist-info Folder 0755
boltons-stubs Folder 0755
braintree-stubs Folder 0755
bs4 Folder 0755
bs4-stubs Folder 0755
bugbear-stubs Folder 0755
cachetools-stubs Folder 0755
cairo Folder 0755
caldav-stubs Folder 0755
capturer-stubs Folder 0755
certbot Folder 0755
certbot-4.0.0.egg-info Folder 0755
certbot_apache Folder 0755
certbot_apache-4.0.0.egg-info Folder 0755
certifi Folder 0755
certifi-2025.1.31.egg-info Folder 0755
cffi-stubs Folder 0755
chardet Folder 0755
chardet-5.2.0.dist-info Folder 0755
charset_normalizer Folder 0755
charset_normalizer-3.4.2.dist-info Folder 0755
chevron-stubs Folder 0755
click Folder 0755
click-8.1.8.dist-info Folder 0755
click_default_group-stubs Folder 0755
click_spinner-stubs Folder 0755
cloud_init-25.2.egg-info Folder 0755
cloudinit Folder 0755
colorama-stubs Folder 0755
colorzero Folder 0755
colorzero-2.0.egg-info Folder 0755
commctrl-stubs Folder 0755
commonmark-stubs Folder 0755
configobj Folder 0755
configobj-5.0.9.dist-info Folder 0755
consolemenu-stubs Folder 0755
corus-stubs Folder 0755
croniter-stubs Folder 0755
cronlog-stubs Folder 0755
crontab-stubs Folder 0755
crontabs-stubs Folder 0755
cryptography Folder 0755
cryptography-43.0.0.dist-info Folder 0755
cssselect Folder 0755
cssselect-1.3.0.egg-info Folder 0755
cupshelpers Folder 0755
cupshelpers-1.0.egg-info Folder 0755
datemath-stubs Folder 0755
dateparser-stubs Folder 0755
dateparser_data-stubs Folder 0755
dateutil Folder 0755
dateutil-stubs Folder 0755
dbus Folder 0755
dbus_python-1.4.0.egg-info Folder 0755
dde-stubs Folder 0755
decorator-stubs Folder 0755
defusedxml-stubs Folder 0755
deprecated-stubs Folder 0755
dill Folder 0755
dill-0.4.0.dist-info Folder 0755
distro Folder 0755
distro-1.9.0.dist-info Folder 0755
distutils-stubs Folder 0755
dns Folder 0755
dnspython-2.7.0.dist-info Folder 0755
docker-stubs Folder 0755
dockerfile_parse-stubs Folder 0755
docutils Folder 0755
docutils-0.21.2.dist-info Folder 0755
docutils-stubs Folder 0755
editdistance-stubs Folder 0755
entrypoints-stubs Folder 0755
exifread-stubs Folder 0755
fanstatic-stubs Folder 0755
farmhash-stubs Folder 0755
first-stubs Folder 0755
flake8-stubs Folder 0755
flake8_builtins-stubs Folder 0755
flake8_docstrings-stubs Folder 0755
flake8_rst_docstrings-stubs Folder 0755
flake8_simplify-stubs Folder 0755
flake8_typing_imports-stubs Folder 0755
flask_cors-stubs Folder 0755
flask_migrate-stubs Folder 0755
flask_socketio-stubs Folder 0755
fpdf-stubs Folder 0755
fqdn Folder 0755
fqdn-1.5.1.egg-info Folder 0755
freetype Folder 0755
freetype_py-2.5.1.dist-info Folder 0755
gdb-stubs Folder 0755
gevent-stubs Folder 0755
gi Folder 0755
google-stubs Folder 0755
gpg Folder 0755
gpg-1.24.2.egg-info Folder 0755
gpiod Folder 0755
gpiod-2.2.0.dist-info Folder 0755
gpiozero Folder 0755
gpiozero-2.0.1.egg-info Folder 0755
gpiozerocli Folder 0755
greenlet-stubs Folder 0755
h11 Folder 0755
h11-0.14.0.egg-info Folder 0755
h2 Folder 0755
h2-4.2.0.dist-info Folder 0755
hdbcli-stubs Folder 0755
hpack Folder 0755
hpack-4.0.0.egg-info Folder 0755
html5lib Folder 0755
html5lib-stubs Folder 0755
html5lib_modern-1.2.egg-info Folder 0755
httpcore Folder 0755
httpcore-1.0.7.dist-info Folder 0755
httplib2-stubs Folder 0755
httpx Folder 0755
httpx-0.28.1.dist-info Folder 0755
humanfriendly-stubs Folder 0755
hvac-stubs Folder 0755
hyperframe Folder 0755
hyperframe-6.0.0.egg-info Folder 0755
ibm_db-stubs Folder 0755
icalendar-stubs Folder 0755
icu Folder 0755
idna Folder 0755
idna-3.10.dist-info Folder 0755
inflect Folder 0755
inflect-7.3.1.dist-info Folder 0755
influxdb_client-stubs Folder 0755
inifile-stubs Folder 0755
isapi-stubs Folder 0755
isoduration Folder 0755
isoduration-20.11.0.egg-info Folder 0755
isort Folder 0755
isort-6.0.1.dist-info Folder 0755
jack-stubs Folder 0755
jaraco Folder 0755
jaraco.functools-4.1.0.dist-info Folder 0755
jaraco.text-4.0.0.dist-info Folder 0755
jaraco_context-6.0.1.dist-info Folder 0755
jedi Folder 0755
jedi-0.19.1.egg-info Folder 0755
jenkins-stubs Folder 0755
jinja2 Folder 0755
jinja2-3.1.6.dist-info Folder 0755
jks-stubs Folder 0755
jmespath-stubs Folder 0755
jose-stubs Folder 0755
josepy Folder 0755
josepy-2.0.0.dist-info Folder 0755
jsonpatch-1.32.egg-info Folder 0755
jsonpointer-2.4.egg-info Folder 0755
jsonschema Folder 0755
jsonschema-4.19.2.dist-info Folder 0755
jsonschema-stubs Folder 0755
jsonschema_specifications Folder 0755
jsonschema_specifications-2023.12.1.dist-info Folder 0755
jwcrypto-stubs Folder 0755
jwt Folder 0755
keyboard-stubs Folder 0755
ldap3-stubs Folder 0755
lgpio-0.2.2.0.egg-info Folder 0755
libarchive Folder 0755
libarchive_c-5.1.egg-info Folder 0755
libcamera Folder 0755
libevdev Folder 0755
libevdev-0.11.egg-info Folder 0755
linkify_it Folder 0755
linkify_it_py-2.0.3.dist-info Folder 0755
logilab Folder 0755
logilab_common-2.1.0.egg-info Folder 0755
lupa-stubs Folder 0755
lxml Folder 0755
lxml-5.4.0.egg-info Folder 0755
lzstring-stubs Folder 0755
m3u8-stubs Folder 0755
markdown Folder 0755
markdown-3.7.dist-info Folder 0755
markdown-stubs Folder 0755
markdown_it Folder 0755
markdown_it_py-3.0.0.dist-info Folder 0755
markupsafe Folder 0755
mccabe-0.7.0.egg-info Folder 0755
mdurl Folder 0755
mdurl-0.1.2.dist-info Folder 0755
meson-1.7.0.egg-info Folder 0755
mesonbuild Folder 0755
mmapfile-stubs Folder 0755
mmsystem-stubs Folder 0755
mock-stubs Folder 0755
more_itertools Folder 0755
more_itertools-10.7.0.dist-info Folder 0755
mypy Folder 0755
mypy-1.15.0.dist-info Folder 0755
mypy_extensions-1.0.0.egg-info Folder 0755
mypy_extensions-stubs Folder 0755
mypyc Folder 0755
nanoid-stubs Folder 0755
netaddr-stubs Folder 0755
netifaces-stubs Folder 0755
netplan Folder 0755
networkx-stubs Folder 0755
nmap-stubs Folder 0755
ntsecuritycon-stubs Folder 0755
numpy Folder 0755
numpy-2.2.4.dist-info Folder 0755
oauthlib Folder 0755
oauthlib-3.2.2.dist-info Folder 0755
oauthlib-stubs Folder 0755
objgraph-stubs Folder 0755
odbc-stubs Folder 0755
olefile Folder 0755
olefile-0.47.egg-info Folder 0755
olefile-stubs Folder 0755
openpyxl-stubs Folder 0755
opentracing-stubs Folder 0755
orjson Folder 0755
orjson-3.10.7.dist-info Folder 0755
packaging Folder 0755
packaging-25.0.dist-info Folder 0755
paramiko-stubs Folder 0755
parsedatetime Folder 0755
parsedatetime-2.6.egg-info Folder 0755
parsimonious-stubs Folder 0755
parso Folder 0755
parso-0.8.4.egg-info Folder 0755
passlib-stubs Folder 0755
passpy-stubs Folder 0755
peewee-stubs Folder 0755
pep8ext_naming-stubs Folder 0755
perfmon-stubs Folder 0755
pexpect Folder 0755
pexpect-4.9.0.egg-info Folder 0755
pexpect-stubs Folder 0755
pgzero Folder 0755
pgzero-1.2.1.dist-info Folder 0755
picamera2 Folder 0755
picamera2-0.3.36.dist-info Folder 0755
pidng Folder 0755
pidng-4.0.9.egg-info Folder 0755
piexif Folder 0755
piexif-1.1.3.egg-info Folder 0755
pika-stubs Folder 0755
pillow-11.1.0.egg-info Folder 0755
pip Folder 0755
pip-25.1.1.dist-info Folder 0755
pkg_resources Folder 0755
pkg_resources-stubs Folder 0755
platformdirs Folder 0755
platformdirs-4.3.7.dist-info Folder 0755
playhouse-stubs Folder 0755
polib-stubs Folder 0755
portpicker-stubs Folder 0755
psutil Folder 0755
psutil-7.0.0.dist-info Folder 0755
psutil-stubs Folder 0755
psycopg2-stubs Folder 0755
ptyprocess Folder 0755
ptyprocess-0.7.0.dist-info Folder 0755
pyOpenSSL-25.0.0.egg-info Folder 0755
pyRFC3339-2.0.1.dist-info Folder 0755
pyasn1-stubs Folder 0755
pyaudio-stubs Folder 0755
pyautogui-stubs Folder 0755
pycairo-1.27.0.dist-info Folder 0755
pycocotools-stubs Folder 0755
pycryptodomex-3.20.0.egg-info Folder 0755
pycups-2.0.4.dist-info Folder 0755
pycurl-stubs Folder 0755
pyflakes-stubs Folder 0755
pygame Folder 0755
pygame-2.6.1.egg-info Folder 0755
pygit2-stubs Folder 0755
pygments Folder 0755
pygments-2.18.0.dist-info Folder 0755
pygments-stubs Folder 0755
pygtkcompat Folder 0755
pyi_splash-stubs Folder 0755
pyjwt-2.10.1.dist-info Folder 0755
pykms Folder 0755
pylint Folder 0755
pylint-3.3.4.dist-info Folder 0755
pymysql-stubs Folder 0755
pynput-stubs Folder 0755
pyopengl-3.1.9.dist-info Folder 0755
pyrfc3339 Folder 0755
pyrfc3339-stubs Folder 0755
pyscreeze-stubs Folder 0755
pyserial-3.5.egg-info Folder 0755
pysftp-stubs Folder 0755
pysmbc-1.0.25.1.egg-info Folder 0755
pytest_lazyfixture-stubs Folder 0755
python_apt-3.0.0.egg-info Folder 0755
python_augeas-1.2.0.egg-info Folder 0755
python_dateutil-2.9.0.dist-info Folder 0755
python_http_client-stubs Folder 0755
python_prctl-1.8.1.egg-info Folder 0755
pythoncom-stubs Folder 0755
pythonwin-stubs Folder 0755
pytz Folder 0755
pytz-2025.2.egg-info Folder 0755
pytz-stubs Folder 0755
pyudev Folder 0755
pyudev-0.24.3.egg-info Folder 0755
pywintypes-stubs Folder 0755
qrbill-stubs Folder 0755
qrcode-stubs Folder 0755
referencing Folder 0755
referencing-0.36.2.dist-info Folder 0755
regex-stubs Folder 0755
regutil-stubs Folder 0755
reportlab Folder 0755
reportlab-4.3.1.egg-info Folder 0755
reportlab-stubs Folder 0755
requests Folder 0755
requests-2.32.3.dist-info Folder 0755
requests-stubs Folder 0755
requests_oauthlib-stubs Folder 0755
retry-stubs Folder 0755
rfc3339_validator-0.1.4.egg-info Folder 0755
rfc3986_validator-0.1.1.egg-info Folder 0755
rfc3987-1.3.8.egg-info Folder 0755
rich Folder 0755
rich-13.9.4.dist-info Folder 0755
rlPyCairo Folder 0755
rlPyCairo-0.3.0.egg-info Folder 0755
roman-5.0.dist-info Folder 0755
rpds Folder 0755
rpds_py-0.21.0.dist-info Folder 0755
rpi_keyboard_config-1.0.egg-info Folder 0755
rpi_lgpio-0.6.egg-info Folder 0755
s2clientprotocol-stubs Folder 0755
samba Folder 0755
sass-stubs Folder 0755
sassutils-stubs Folder 0755
seaborn-stubs Folder 0755
send2trash Folder 0755
send2trash-stubs Folder 0755
sense_hat Folder 0755
sense_hat-2.6.1.egg-info Folder 0755
serial Folder 0755
serial-stubs Folder 0755
servicemanager-stubs Folder 0755
setuptools Folder 0755
setuptools-78.1.1.egg-info Folder 0755
setuptools-stubs Folder 0755
shapely-stubs Folder 0755
simplejpeg Folder 0755
simplejpeg-1.8.1.egg-info Folder 0755
simplejson-stubs Folder 0755
singledispatch-stubs Folder 0755
six-stubs Folder 0755
slumber-stubs Folder 0755
smbc Folder 0755
smbus-1.1.egg-info Folder 0755
smbus2 Folder 0755
smbus2-0.4.3.egg-info Folder 0755
sniffio Folder 0755
sniffio-1.3.1.dist-info Folder 0755
soupsieve Folder 0755
soupsieve-2.7.dist-info Folder 0755
spidev-3.6.egg-info Folder 0755
ssh_import_id Folder 0755
ssh_import_id-5.10.egg-info Folder 0755
sspicon-stubs Folder 0755
str2bool-stubs Folder 0755
tabulate-stubs Folder 0755
tensorflow-stubs Folder 0755
tgcrypto-stubs Folder 0755
thonny Folder 0755
thonny-4.1.7.egg-info Folder 0755
timer-stubs Folder 0755
toml-stubs Folder 0755
tomlkit Folder 0755
tomlkit-0.13.2.dist-info Folder 0755
toposort-stubs Folder 0755
tqdm Folder 0755
tqdm-4.67.1.dist-info Folder 0755
tqdm-stubs Folder 0755
translationstring-stubs Folder 0755
tree_sitter_languages-stubs Folder 0755
ttkthemes-stubs Folder 0755
typeguard Folder 0755
typeguard-4.4.2.dist-info Folder 0755
types_Deprecated-1.2.15.dist-info Folder 0755
types_ExifRead-3.0.dist-info Folder 0755
types_Flask_Cors-5.0.dist-info Folder 0755
types_Flask_Migrate-4.0.dist-info Folder 0755
types_Flask_SocketIO-5.4.dist-info Folder 0755
types_JACK_Client-0.5.dist-info Folder 0755
types_Jetson.GPIO-2.1.dist-info Folder 0755
types_Markdown-3.7.dist-info Folder 0755
types_PyAutoGUI-0.9.dist-info Folder 0755
types_PyMySQL-1.1.dist-info Folder 0755
types_PyScreeze-1.0.1.dist-info Folder 0755
types_PyYAML-6.0.dist-info Folder 0755
types_Pygments-2.18.dist-info Folder 0755
types_RPi.GPIO-0.7.dist-info Folder 0755
types_Send2Trash-1.8.dist-info Folder 0755
types_TgCrypto-1.2.dist-info Folder 0755
types_WTForms-3.2.1.dist-info Folder 0755
types_WebOb-1.8.dist-info Folder 0755
types_aiofiles-24.1.dist-info Folder 0755
types_antlr4_python3_runtime-4.13.dist-info Folder 0755
types_assertpy-1.1.dist-info Folder 0755
types_atheris-2.3.dist-info Folder 0755
types_aws_xray_sdk-2.14.dist-info Folder 0755
types_beautifulsoup4-4.12.dist-info Folder 0755
types_bleach-6.2.dist-info Folder 0755
types_boltons-24.1.dist-info Folder 0755
types_braintree-4.31.dist-info Folder 0755
types_cachetools-5.5.dist-info Folder 0755
types_caldav-1.3.dist-info Folder 0755
types_capturer-3.0.dist-info Folder 0755
types_cffi-1.16.dist-info Folder 0755
types_chevron-0.14.dist-info Folder 0755
types_click_default_group-1.2.dist-info Folder 0755
types_click_spinner-0.1.dist-info Folder 0755
types_colorama-0.4.dist-info Folder 0755
types_commonmark-0.9.dist-info Folder 0755
types_console_menu-0.8.dist-info Folder 0755
types_corus-0.10.dist-info Folder 0755
types_croniter-5.0.1.dist-info Folder 0755
types_dateparser-1.2.dist-info Folder 0755
types_decorator-5.1.dist-info Folder 0755
types_defusedxml-0.7.dist-info Folder 0755
types_docker-7.1.dist-info Folder 0755
types_dockerfile_parse-2.0.dist-info Folder 0755
types_docutils-0.21.dist-info Folder 0755
types_editdistance-0.8.dist-info Folder 0755
types_entrypoints-0.4.dist-info Folder 0755
types_fanstatic-1.4.dist-info Folder 0755
types_first-2.0.dist-info Folder 0755
types_flake8-7.1.dist-info Folder 0755
types_flake8_bugbear-24.12.12.dist-info Folder 0755
types_flake8_builtins-2.5.dist-info Folder 0755
types_flake8_docstrings-1.7.dist-info Folder 0755
types_flake8_rst_docstrings-0.3.dist-info Folder 0755
types_flake8_simplify-0.21.dist-info Folder 0755
types_flake8_typing_imports-1.16.dist-info Folder 0755
types_fpdf2-2.8.2.dist-info Folder 0755
types_gdb-15.0.dist-info Folder 0755
types_gevent-24.11.dist-info Folder 0755
types_google_cloud_ndb-2.3.dist-info Folder 0755
types_greenlet-3.1.dist-info Folder 0755
types_hdbcli-2.23.dist-info Folder 0755
types_html5lib-1.1.dist-info Folder 0755
types_httplib2-0.22.dist-info Folder 0755
types_humanfriendly-10.0.dist-info Folder 0755
types_hvac-2.3.dist-info Folder 0755
types_ibm_db-3.2.4.dist-info Folder 0755
types_icalendar-6.1.dist-info Folder 0755
types_influxdb_client-1.45.dist-info Folder 0755
types_inifile-0.4.dist-info Folder 0755
types_jmespath-1.0.dist-info Folder 0755
types_jsonschema-4.23.dist-info Folder 0755
types_jwcrypto-1.5.dist-info Folder 0755
types_keyboard-0.13.dist-info Folder 0755
types_ldap3-2.9.dist-info Folder 0755
types_libsass-0.23.dist-info Folder 0755
types_lupa-2.2.dist-info Folder 0755
types_lzstring-1.0.dist-info Folder 0755
types_m3u8-6.0.dist-info Folder 0755
types_mock-5.1.dist-info Folder 0755
types_mypy_extensions-1.0.dist-info Folder 0755
types_mysqlclient-2.2.dist-info Folder 0755
types_nanoid-2.0.0.dist-info Folder 0755
types_netaddr-1.3.dist-info Folder 0755
types_netifaces-0.11.dist-info Folder 0755
types_networkx-3.4.2.dist-info Folder 0755
types_oauthlib-3.2.dist-info Folder 0755
types_objgraph-3.6.dist-info Folder 0755
types_olefile-0.47.dist-info Folder 0755
types_openpyxl-3.1.5.dist-info Folder 0755
types_opentracing-2.4.dist-info Folder 0755
types_paramiko-3.5.dist-info Folder 0755
types_parsimonious-0.10.dist-info Folder 0755
types_passlib-1.7.dist-info Folder 0755
types_passpy-1.0.dist-info Folder 0755
types_peewee-3.17.8.dist-info Folder 0755
types_pep8_naming-0.14.dist-info Folder 0755
types_pexpect-4.9.dist-info Folder 0755
types_pika_ts-1.3.dist-info Folder 0755
types_polib-1.2.dist-info Folder 0755
types_portpicker-1.6.dist-info Folder 0755
types_protobuf-5.29.1.dist-info Folder 0755
types_psutil-6.1.dist-info Folder 0755
types_psycopg2-2.9.10.dist-info Folder 0755
types_pyOpenSSL-24.1.dist-info Folder 0755
types_pyRFC3339-2.0.1.dist-info Folder 0755
types_pyasn1-0.6.dist-info Folder 0755
types_pyaudio-0.2.dist-info Folder 0755
types_pycocotools-2.0.dist-info Folder 0755
types_pycurl-7.45.4.dist-info Folder 0755
types_pyfarmhash-0.4.dist-info Folder 0755
types_pyflakes-3.2.dist-info Folder 0755
types_pygit2-1.15.dist-info Folder 0755
types_pyinstaller-6.11.dist-info Folder 0755
types_pyjks-20.0.dist-info Folder 0755
types_pynput-1.7.7.dist-info Folder 0755
types_pyserial-3.5.dist-info Folder 0755
types_pysftp-0.2.dist-info Folder 0755
types_pytest_lazy_fixture-0.6.dist-info Folder 0755
types_python_crontab-3.2.dist-info Folder 0755
types_python_datemath-3.0.1.dist-info Folder 0755
types_python_dateutil-2.9.dist-info Folder 0755
types_python_http_client-3.3.7.dist-info Folder 0755
types_python_jenkins-1.8.dist-info Folder 0755
types_python_jose-3.3.dist-info Folder 0755
types_python_nmap-0.7.dist-info Folder 0755
types_python_xlib-0.33.dist-info Folder 0755
types_pytz-2024.2.dist-info Folder 0755
types_pywin32-308.dist-info Folder 0755
types_pyxdg-0.28.dist-info Folder 0755
types_qrbill-1.1.dist-info Folder 0755
types_qrcode-8.0.dist-info Folder 0755
types_regex-2024.11.6.dist-info Folder 0755
types_reportlab-4.2.5.dist-info Folder 0755
types_requests-2.32.dist-info Folder 0755
types_requests_oauthlib-2.0.dist-info Folder 0755
types_retry-0.9.dist-info Folder 0755
types_s2clientprotocol-5.dist-info Folder 0755
types_seaborn-0.13.2.dist-info Folder 0755
types_setuptools-75.6.dist-info Folder 0755
types_shapely-2.0.dist-info Folder 0755
types_simplejson-3.19.dist-info Folder 0755
types_singledispatch-4.1.dist-info Folder 0755
types_six-1.17.dist-info Folder 0755
types_slumber-0.7.dist-info Folder 0755
types_str2bool-1.1.dist-info Folder 0755
types_tabulate-0.9.dist-info Folder 0755
types_tensorflow-2.18.0.dist-info Folder 0755
types_toml-0.10.dist-info Folder 0755
types_toposort-1.10.dist-info Folder 0755
types_tqdm-4.67.dist-info Folder 0755
types_translationstring-1.4.dist-info Folder 0755
types_tree_sitter_languages-1.10.dist-info Folder 0755
types_ttkthemes-3.2.dist-info Folder 0755
types_uWSGI-2.0.dist-info Folder 0755
types_ujson-5.10.dist-info Folder 0755
types_unidiff-0.7.dist-info Folder 0755
types_untangle-1.2.dist-info Folder 0755
types_usersettings-1.1.dist-info Folder 0755
types_vobject-0.9.9.dist-info Folder 0755
types_waitress-3.0.1.dist-info Folder 0755
types_whatthepatch-1.0.dist-info Folder 0755
types_workalendar-17.0.dist-info Folder 0755
types_wurlitzer-3.1.dist-info Folder 0755
types_xdgenvpy-3.0.dist-info Folder 0755
types_xmltodict-0.14.dist-info Folder 0755
types_zstd-1.5.dist-info Folder 0755
types_zxcvbn-4.4.dist-info Folder 0755
typing_extensions-4.13.2.dist-info Folder 0755
uc_micro Folder 0755
uc_micro_py-1.0.3.dist-info Folder 0755
ujson-stubs Folder 0755
unidiff-stubs Folder 0755
untangle-stubs Folder 0755
uritemplate Folder 0755
uritemplate-4.1.1.egg-info Folder 0755
urllib3 Folder 0755
urllib3-2.3.0.dist-info Folder 0755
usersettings-stubs Folder 0755
uwsgi-stubs Folder 0755
uwsgidecorators-stubs Folder 0755
validate Folder 0755
videodev2 Folder 0755
videodev2-0.0.4.egg-info Folder 0755
vobject-stubs Folder 0755
waitress-stubs Folder 0755
webcolors Folder 0755
webcolors-1.13.dist-info Folder 0755
webencodings Folder 0755
webencodings-0.5.1.egg-info Folder 0755
webob-stubs Folder 0755
whatthepatch-stubs Folder 0755
wheel Folder 0755
wheel-0.46.1.dist-info Folder 0755
win2kras-stubs Folder 0755
win32-stubs Folder 0755
win32api-stubs Folder 0755
win32clipboard-stubs Folder 0755
win32com-stubs Folder 0755
win32comext-stubs Folder 0755
win32con-stubs Folder 0755
win32console-stubs Folder 0755
win32cred-stubs Folder 0755
win32crypt-stubs Folder 0755
win32cryptcon-stubs Folder 0755
win32event-stubs Folder 0755
win32evtlog-stubs Folder 0755
win32evtlogutil-stubs Folder 0755
win32file-stubs Folder 0755
win32gui-stubs Folder 0755
win32gui_struct-stubs Folder 0755
win32help-stubs Folder 0755
win32inet-stubs Folder 0755
win32inetcon-stubs Folder 0755
win32job-stubs Folder 0755
win32lz-stubs Folder 0755
win32net-stubs Folder 0755
win32netcon-stubs Folder 0755
win32pdh-stubs Folder 0755
win32pdhquery-stubs Folder 0755
win32pipe-stubs Folder 0755
win32print-stubs Folder 0755
win32process-stubs Folder 0755
win32profile-stubs Folder 0755
win32ras-stubs Folder 0755
win32security-stubs Folder 0755
win32service-stubs Folder 0755
win32serviceutil-stubs Folder 0755
win32timezone-stubs Folder 0755
win32trace-stubs Folder 0755
win32transaction-stubs Folder 0755
win32ts-stubs Folder 0755
win32ui-stubs Folder 0755
win32uiole-stubs Folder 0755
win32verstamp-stubs Folder 0755
win32wnet-stubs Folder 0755
winerror-stubs Folder 0755
winioctlcon-stubs Folder 0755
winnt-stubs Folder 0755
winperf-stubs Folder 0755
winxpgui-stubs Folder 0755
winxptheme-stubs Folder 0755
workalendar-stubs Folder 0755
wtforms-stubs Folder 0755
wurlitzer-stubs Folder 0755
xdg-stubs Folder 0755
xdgenvpy-stubs Folder 0755
xmltodict-stubs Folder 0755
yaml Folder 0755
yaml-stubs Folder 0755
zipp Folder 0755
zipp-3.21.0.dist-info Folder 0755
zstd-stubs Folder 0755
zxcvbn-stubs Folder 0755
3204bda914b7f2c6f497__mypyc.cpython-313-aarch64-linux-gnu.so File 28.22 MB 0644
Imath.py File 8.93 KB 0644
OpenEXR.cpython-313-aarch64-linux-gnu.so File 68.91 KB 0644
RTIMU.cpython-313-aarch64-linux-gnu.so File 201.53 KB 0644
_augeas.abi3.so File 67.37 KB 0644
_cffi_backend.cpython-313-aarch64-linux-gnu.so File 269.63 KB 0644
_dbus_bindings.cpython-313-aarch64-linux-gnu.so File 215.88 KB 0644
_dbus_glib_bindings.cpython-313-aarch64-linux-gnu.so File 66.34 KB 0644
_ldb_text.py File 3.45 KB 0644
_lgpio.cpython-313-aarch64-linux-gnu.so File 134.31 KB 0644
_prctl.cpython-313-aarch64-linux-gnu.so File 66.5 KB 0644
_smbc.cpython-313-aarch64-linux-gnu.so File 70.04 KB 0644
_tdb_text.py File 3.16 KB 0644
apt_inst.cpython-313-aarch64-linux-gnu.so File 70.41 KB 0644
apt_pkg.cpython-313-aarch64-linux-gnu.so File 419.16 KB 0644
configargparse.py File 63.09 KB 0644
cups.cpython-313-aarch64-linux-gnu.so File 203.66 KB 0644
cupsext.cpython-313-aarch64-linux-gnu.so File 68.96 KB 0644
debconf.py File 7.86 KB 0644
distutils-precedence.pth File 151 B 0644
hpmudext.cpython-313-aarch64-linux-gnu.so File 66.67 KB 0644
jsonpatch.py File 28.14 KB 0644
jsonpointer.py File 10.71 KB 0644
language_support_pkgs.py File 9.91 KB 0644
ldb.cpython-313-aarch64-linux-gnu.so File 137.64 KB 0644
lgpio.py File 67.99 KB 0644
ljpegCompress.cpython-313-aarch64-linux-gnu.so File 66.23 KB 0644
logilab_common-2.1.0-nspkg.pth File 472 B 0644
mccabe.py File 10.4 KB 0644
mypy_extensions.py File 6.08 KB 0644
pcardext.cpython-313-aarch64-linux-gnu.so File 66.48 KB 0644
pgzrun.py File 827 B 0644
prctl.py File 7.35 KB 0644
rfc3339_validator.py File 1015 B 0644
rfc3986_validator.py File 4.29 KB 0644
rfc3987.py File 21.35 KB 0644
roman.py File 3.99 KB 0644
scanext.cpython-313-aarch64-linux-gnu.so File 67.16 KB 0644
smbus.cpython-313-aarch64-linux-gnu.so File 66.98 KB 0644
spidev.cpython-313-aarch64-linux-gnu.so File 67.64 KB 0644
talloc.cpython-313-aarch64-linux-gnu.so File 67.46 KB 0644
tdb.cpython-313-aarch64-linux-gnu.so File 68.12 KB 0644
typing_extensions.py File 168.61 KB 0644
Filemanager