Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  __init__.py   Sprache: Python

 
# SPDX-License-Identifier: MIT

"""
Classes Without Boilerplate
"""

from functools import partial
from typing import Callable

from . import converters, exceptions, filters, setters, validators
from ._cmp import cmp_using
from ._config import get_run_validators, set_run_validators
from ._funcs import asdict, assoc, astuple, evolve, has, resolve_types
from ._make import (
    NOTHING,
    Attribute,
    Factory,
    attrib,
    attrs,
    fields,
    fields_dict,
    make_class,
    validate,
)
from ._next_gen import define, field, frozen, mutable
from ._version_info import VersionInfo


s = attributes = attrs
ib = attr = attrib
dataclass = partial(attrs, auto_attribs=True)  # happy Easter ;)


class AttrsInstance:
    pass


__all__ = [
    "Attribute",
    "AttrsInstance",
    "Factory",
    "NOTHING",
    "asdict",
    "assoc",
    "astuple",
    "attr",
    "attrib",
    "attributes",
    "attrs",
    "cmp_using",
    "converters",
    "define",
    "evolve",
    "exceptions",
    "field",
    "fields",
    "fields_dict",
    "filters",
    "frozen",
    "get_run_validators",
    "has",
    "ib",
    "make_class",
    "mutable",
    "resolve_types",
    "s",
    "set_run_validators",
    "setters",
    "validate",
    "validators",
]


def _make_getattr(mod_name: str) -> Callable:
    """
    Create a metadata proxy for packaging information that uses *mod_name* in
    its warnings and errors.
    """

    def __getattr__(name: str) -> str:
        dunder_to_metadata = {
            "__title__""Name",
            "__copyright__""",
            "__version__""version",
            "__version_info__""version",
            "__description__""summary",
            "__uri__""",
            "__url__""",
            "__author__""",
            "__email__""",
            "__license__""license",
        }
        if name not in dunder_to_metadata.keys():
            raise AttributeError(f"module {mod_name} has no attribute {name}")

        import sys
        import warnings

        if sys.version_info < (3, 8):
            from importlib_metadata import metadata
        else:
            from importlib.metadata import metadata

        if name != "__version_info__":
            warnings.warn(
                f"Accessing {mod_name}.{name} is deprecated and will be "
                "removed in a future release. Use importlib.metadata directly "
                "to query for attrs's packaging metadata.",
                DeprecationWarning,
                stacklevel=2,
            )

        meta = metadata("attrs")
        if name == "__license__":
            return "MIT"
        elif name == "__copyright__":
            return "Copyright (c) 2015 Hynek Schlawack"
        elif name in ("__uri__""__url__"):
            return meta["Project-URL"].split(" ", 1)[-1]
        elif name == "__version_info__":
            return VersionInfo._from_version_string(meta["version"])
        elif name == "__author__":
            return meta["Author-email"].rsplit(" ", 1)[0]
        elif name == "__email__":
            return meta["Author-email"].rsplit("<", 1)[1][:-1]

        return meta[dunder_to_metadata[name]]

    return __getattr__


__getattr__ = _make_getattr(__name__)

Messung V0.5
C=93 H=94 G=93

¤ Dauer der Verarbeitung: 0.1 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge