Current collected state Current
Observed since 20 Oct, 17:13 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
abcattrs
Abstract class attributes
Abstract class attributes for ABCs.
import abc
from abcattrs import abstractattrs, Abstract
@abstractattrs
class A(abc.ABC):
foo: Abstract[int]
# Abstract subclasses can add more required attributes.
class B(A, abc.ABC):
bar: Abstract[str]
class C(B):
# C must assign values to both of these attributes to not raise an error.
foo = 1
bar = "str"
# This raises an error.
class MissingBar(B):
foo = 1
# This raises an error.
class MissingFoo(B):
bar = "str"
The Abstract qualifier can be combined with other PEP 593 annotations.
from typing import Annotated
import abc
from abcattrs import abstractattrs, Abstract
@abstractattrs
class A(abc.ABC):
# Combine with other annotations
bar: Annotated[str, Abstract, "other info"]
Download counts and popularity will appear here as the collector receives them.
| Package / target | Requirement | Relationship |
|---|---|---|
pytestEnvironment{
"extras": "",
"marker": "extra == \"test\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | pytest; extra == "test" | runtime |
pytest-mypy-pluginsEnvironment{
"extras": "",
"marker": "extra == \"test\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | pytest-mypy-plugins; extra == "test" | runtime |
coverageEnvironment{
"extras": "",
"marker": "extra == \"test\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | coverage; extra == "test" | runtime |
mypyEnvironment{
"extras": "",
"marker": "extra == \"type-check\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | mypy; extra == "type-check" | runtime |
pytestEnvironment{
"extras": "",
"marker": "extra == \"type-check\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | pytest; extra == "type-check" | runtime |
types-setuptoolsEnvironment{
"extras": "",
"marker": "extra == \"type-check\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | types-setuptools; extra == "type-check" | runtime |
bdist_wheel · 5.83 KB · Python py3
sdist · 5.33 KB · Python source
Observed since 20 Oct, 17:13 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package_version:e82a3bcee7d83aac967c28600bc7e4edcfa484d027b4fd7498dd4a0274f5ca0e