├── .editorconfig ├── .github ├── ISSUE_TEMPLATE │ ├── Bug.md │ └── config.yml ├── dependabot.yml ├── pull_request_template.md └── workflows │ └── test.yml ├── .gitignore ├── .readthedocs.yml ├── CHANGELOG.md ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── classes ├── __init__.py ├── _registry.py ├── _typeclass.py ├── contrib │ ├── __init__.py │ └── mypy │ │ ├── __init__.py │ │ ├── classes_plugin.py │ │ ├── features │ │ ├── __init__.py │ │ ├── associated_type.py │ │ ├── supports.py │ │ └── typeclass.py │ │ ├── semanal │ │ ├── __init__.py │ │ └── variadic_generic.py │ │ ├── typeops │ │ ├── __init__.py │ │ ├── call_signatures.py │ │ ├── fallback.py │ │ ├── inference.py │ │ ├── instance_context.py │ │ ├── instance_type_args.py │ │ ├── mro.py │ │ ├── type_loader.py │ │ └── type_queries.py │ │ └── validation │ │ ├── __init__.py │ │ ├── validate_associated_type.py │ │ ├── validate_instance │ │ ├── __init__.py │ │ ├── validate_instance_args.py │ │ ├── validate_runtime.py │ │ └── validate_signature.py │ │ ├── validate_supports.py │ │ └── validate_typeclass_def.py └── py.typed ├── docs ├── Makefile ├── _static │ └── overrides.css ├── _templates │ ├── layout.html │ └── moreinfo.html ├── conf.py ├── index.rst └── pages │ ├── api-docs.rst │ ├── changelog.rst │ ├── concept.rst │ ├── dry-python.rst │ ├── generics.rst │ ├── supports.rst │ └── why.rst ├── poetry.lock ├── pyproject.toml ├── setup.cfg ├── tests ├── conftest.py ├── test_associated_type │ └── test_variadic_generic.py ├── test_supports.py └── test_typeclass │ ├── test_arguments.py │ ├── test_cache.py │ ├── test_call.py │ ├── test_callback.py │ ├── test_protocols.py │ ├── test_regular_types.py │ ├── test_repr.py │ ├── test_typed_dict.py │ └── test_typing_type.py └── typesafety ├── test_associated_type ├── test_validation │ ├── test_base_classes.yml │ ├── test_bodies.yml │ ├── test_generic_missmatch.yml │ └── test_reuse.yml └── test_variadic.yml ├── test_supports_type ├── test_generic.yml └── test_regular.yml ├── test_typeclass ├── test__call__.yml ├── test_callback.yml ├── test_generics │ ├── test_generics_concrete.yml │ ├── test_generics_regular.yml │ ├── test_generics_typevar.yml │ └── test_typed_dict.yml ├── test_instance │ ├── test_instance_method.yml │ ├── test_instance_protocols.yml │ └── test_instance_variance.yml ├── test_supports │ ├── test_supports_method.yml │ └── test_typeguard.yml ├── test_typeclass.yml └── test_validation │ ├── test_body.yml │ └── test_first_arg.yml └── test_typing_type.yml /.editorconfig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-python/classes/HEAD/.editorconfig -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/Bug.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-python/classes/HEAD/.github/ISSUE_TEMPLATE/Bug.md -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-python/classes/HEAD/.github/ISSUE_TEMPLATE/config.yml -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-python/classes/HEAD/.github/dependabot.yml -------------------------------------------------------------------------------- /.github/pull_request_template.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-python/classes/HEAD/.github/pull_request_template.md -------------------------------------------------------------------------------- /.github/workflows/test.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-python/classes/HEAD/.github/workflows/test.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-python/classes/HEAD/.gitignore -------------------------------------------------------------------------------- /.readthedocs.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-python/classes/HEAD/.readthedocs.yml -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-python/classes/HEAD/CHANGELOG.md -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-python/classes/HEAD/CONTRIBUTING.md -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-python/classes/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-python/classes/HEAD/README.md -------------------------------------------------------------------------------- /classes/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-python/classes/HEAD/classes/__init__.py -------------------------------------------------------------------------------- /classes/_registry.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-python/classes/HEAD/classes/_registry.py -------------------------------------------------------------------------------- /classes/_typeclass.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-python/classes/HEAD/classes/_typeclass.py -------------------------------------------------------------------------------- /classes/contrib/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | -------------------------------------------------------------------------------- /classes/contrib/mypy/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | -------------------------------------------------------------------------------- /classes/contrib/mypy/classes_plugin.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-python/classes/HEAD/classes/contrib/mypy/classes_plugin.py -------------------------------------------------------------------------------- /classes/contrib/mypy/features/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /classes/contrib/mypy/features/associated_type.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-python/classes/HEAD/classes/contrib/mypy/features/associated_type.py -------------------------------------------------------------------------------- /classes/contrib/mypy/features/supports.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-python/classes/HEAD/classes/contrib/mypy/features/supports.py -------------------------------------------------------------------------------- /classes/contrib/mypy/features/typeclass.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-python/classes/HEAD/classes/contrib/mypy/features/typeclass.py -------------------------------------------------------------------------------- /classes/contrib/mypy/semanal/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /classes/contrib/mypy/semanal/variadic_generic.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-python/classes/HEAD/classes/contrib/mypy/semanal/variadic_generic.py -------------------------------------------------------------------------------- /classes/contrib/mypy/typeops/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /classes/contrib/mypy/typeops/call_signatures.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-python/classes/HEAD/classes/contrib/mypy/typeops/call_signatures.py -------------------------------------------------------------------------------- /classes/contrib/mypy/typeops/fallback.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-python/classes/HEAD/classes/contrib/mypy/typeops/fallback.py -------------------------------------------------------------------------------- /classes/contrib/mypy/typeops/inference.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-python/classes/HEAD/classes/contrib/mypy/typeops/inference.py -------------------------------------------------------------------------------- /classes/contrib/mypy/typeops/instance_context.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-python/classes/HEAD/classes/contrib/mypy/typeops/instance_context.py -------------------------------------------------------------------------------- /classes/contrib/mypy/typeops/instance_type_args.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-python/classes/HEAD/classes/contrib/mypy/typeops/instance_type_args.py -------------------------------------------------------------------------------- /classes/contrib/mypy/typeops/mro.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-python/classes/HEAD/classes/contrib/mypy/typeops/mro.py -------------------------------------------------------------------------------- /classes/contrib/mypy/typeops/type_loader.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-python/classes/HEAD/classes/contrib/mypy/typeops/type_loader.py -------------------------------------------------------------------------------- /classes/contrib/mypy/typeops/type_queries.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-python/classes/HEAD/classes/contrib/mypy/typeops/type_queries.py -------------------------------------------------------------------------------- /classes/contrib/mypy/validation/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /classes/contrib/mypy/validation/validate_associated_type.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-python/classes/HEAD/classes/contrib/mypy/validation/validate_associated_type.py -------------------------------------------------------------------------------- /classes/contrib/mypy/validation/validate_instance/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-python/classes/HEAD/classes/contrib/mypy/validation/validate_instance/__init__.py -------------------------------------------------------------------------------- /classes/contrib/mypy/validation/validate_instance/validate_instance_args.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-python/classes/HEAD/classes/contrib/mypy/validation/validate_instance/validate_instance_args.py -------------------------------------------------------------------------------- /classes/contrib/mypy/validation/validate_instance/validate_runtime.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-python/classes/HEAD/classes/contrib/mypy/validation/validate_instance/validate_runtime.py -------------------------------------------------------------------------------- /classes/contrib/mypy/validation/validate_instance/validate_signature.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-python/classes/HEAD/classes/contrib/mypy/validation/validate_instance/validate_signature.py -------------------------------------------------------------------------------- /classes/contrib/mypy/validation/validate_supports.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-python/classes/HEAD/classes/contrib/mypy/validation/validate_supports.py -------------------------------------------------------------------------------- /classes/contrib/mypy/validation/validate_typeclass_def.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-python/classes/HEAD/classes/contrib/mypy/validation/validate_typeclass_def.py -------------------------------------------------------------------------------- /classes/py.typed: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-python/classes/HEAD/docs/Makefile -------------------------------------------------------------------------------- /docs/_static/overrides.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-python/classes/HEAD/docs/_static/overrides.css -------------------------------------------------------------------------------- /docs/_templates/layout.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-python/classes/HEAD/docs/_templates/layout.html -------------------------------------------------------------------------------- /docs/_templates/moreinfo.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-python/classes/HEAD/docs/_templates/moreinfo.html -------------------------------------------------------------------------------- /docs/conf.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-python/classes/HEAD/docs/conf.py -------------------------------------------------------------------------------- /docs/index.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-python/classes/HEAD/docs/index.rst -------------------------------------------------------------------------------- /docs/pages/api-docs.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-python/classes/HEAD/docs/pages/api-docs.rst -------------------------------------------------------------------------------- /docs/pages/changelog.rst: -------------------------------------------------------------------------------- 1 | .. mdinclude:: ../../CHANGELOG.md 2 | -------------------------------------------------------------------------------- /docs/pages/concept.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-python/classes/HEAD/docs/pages/concept.rst -------------------------------------------------------------------------------- /docs/pages/dry-python.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-python/classes/HEAD/docs/pages/dry-python.rst -------------------------------------------------------------------------------- /docs/pages/generics.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-python/classes/HEAD/docs/pages/generics.rst -------------------------------------------------------------------------------- /docs/pages/supports.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-python/classes/HEAD/docs/pages/supports.rst -------------------------------------------------------------------------------- /docs/pages/why.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-python/classes/HEAD/docs/pages/why.rst -------------------------------------------------------------------------------- /poetry.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-python/classes/HEAD/poetry.lock -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-python/classes/HEAD/pyproject.toml -------------------------------------------------------------------------------- /setup.cfg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-python/classes/HEAD/setup.cfg -------------------------------------------------------------------------------- /tests/conftest.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-python/classes/HEAD/tests/conftest.py -------------------------------------------------------------------------------- /tests/test_associated_type/test_variadic_generic.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-python/classes/HEAD/tests/test_associated_type/test_variadic_generic.py -------------------------------------------------------------------------------- /tests/test_supports.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-python/classes/HEAD/tests/test_supports.py -------------------------------------------------------------------------------- /tests/test_typeclass/test_arguments.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-python/classes/HEAD/tests/test_typeclass/test_arguments.py -------------------------------------------------------------------------------- /tests/test_typeclass/test_cache.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-python/classes/HEAD/tests/test_typeclass/test_cache.py -------------------------------------------------------------------------------- /tests/test_typeclass/test_call.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-python/classes/HEAD/tests/test_typeclass/test_call.py -------------------------------------------------------------------------------- /tests/test_typeclass/test_callback.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-python/classes/HEAD/tests/test_typeclass/test_callback.py -------------------------------------------------------------------------------- /tests/test_typeclass/test_protocols.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-python/classes/HEAD/tests/test_typeclass/test_protocols.py -------------------------------------------------------------------------------- /tests/test_typeclass/test_regular_types.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-python/classes/HEAD/tests/test_typeclass/test_regular_types.py -------------------------------------------------------------------------------- /tests/test_typeclass/test_repr.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-python/classes/HEAD/tests/test_typeclass/test_repr.py -------------------------------------------------------------------------------- /tests/test_typeclass/test_typed_dict.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-python/classes/HEAD/tests/test_typeclass/test_typed_dict.py -------------------------------------------------------------------------------- /tests/test_typeclass/test_typing_type.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-python/classes/HEAD/tests/test_typeclass/test_typing_type.py -------------------------------------------------------------------------------- /typesafety/test_associated_type/test_validation/test_base_classes.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-python/classes/HEAD/typesafety/test_associated_type/test_validation/test_base_classes.yml -------------------------------------------------------------------------------- /typesafety/test_associated_type/test_validation/test_bodies.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-python/classes/HEAD/typesafety/test_associated_type/test_validation/test_bodies.yml -------------------------------------------------------------------------------- /typesafety/test_associated_type/test_validation/test_generic_missmatch.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-python/classes/HEAD/typesafety/test_associated_type/test_validation/test_generic_missmatch.yml -------------------------------------------------------------------------------- /typesafety/test_associated_type/test_validation/test_reuse.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-python/classes/HEAD/typesafety/test_associated_type/test_validation/test_reuse.yml -------------------------------------------------------------------------------- /typesafety/test_associated_type/test_variadic.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-python/classes/HEAD/typesafety/test_associated_type/test_variadic.yml -------------------------------------------------------------------------------- /typesafety/test_supports_type/test_generic.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-python/classes/HEAD/typesafety/test_supports_type/test_generic.yml -------------------------------------------------------------------------------- /typesafety/test_supports_type/test_regular.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-python/classes/HEAD/typesafety/test_supports_type/test_regular.yml -------------------------------------------------------------------------------- /typesafety/test_typeclass/test__call__.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-python/classes/HEAD/typesafety/test_typeclass/test__call__.yml -------------------------------------------------------------------------------- /typesafety/test_typeclass/test_callback.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-python/classes/HEAD/typesafety/test_typeclass/test_callback.yml -------------------------------------------------------------------------------- /typesafety/test_typeclass/test_generics/test_generics_concrete.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-python/classes/HEAD/typesafety/test_typeclass/test_generics/test_generics_concrete.yml -------------------------------------------------------------------------------- /typesafety/test_typeclass/test_generics/test_generics_regular.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-python/classes/HEAD/typesafety/test_typeclass/test_generics/test_generics_regular.yml -------------------------------------------------------------------------------- /typesafety/test_typeclass/test_generics/test_generics_typevar.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-python/classes/HEAD/typesafety/test_typeclass/test_generics/test_generics_typevar.yml -------------------------------------------------------------------------------- /typesafety/test_typeclass/test_generics/test_typed_dict.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-python/classes/HEAD/typesafety/test_typeclass/test_generics/test_typed_dict.yml -------------------------------------------------------------------------------- /typesafety/test_typeclass/test_instance/test_instance_method.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-python/classes/HEAD/typesafety/test_typeclass/test_instance/test_instance_method.yml -------------------------------------------------------------------------------- /typesafety/test_typeclass/test_instance/test_instance_protocols.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-python/classes/HEAD/typesafety/test_typeclass/test_instance/test_instance_protocols.yml -------------------------------------------------------------------------------- /typesafety/test_typeclass/test_instance/test_instance_variance.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-python/classes/HEAD/typesafety/test_typeclass/test_instance/test_instance_variance.yml -------------------------------------------------------------------------------- /typesafety/test_typeclass/test_supports/test_supports_method.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-python/classes/HEAD/typesafety/test_typeclass/test_supports/test_supports_method.yml -------------------------------------------------------------------------------- /typesafety/test_typeclass/test_supports/test_typeguard.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-python/classes/HEAD/typesafety/test_typeclass/test_supports/test_typeguard.yml -------------------------------------------------------------------------------- /typesafety/test_typeclass/test_typeclass.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-python/classes/HEAD/typesafety/test_typeclass/test_typeclass.yml -------------------------------------------------------------------------------- /typesafety/test_typeclass/test_validation/test_body.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-python/classes/HEAD/typesafety/test_typeclass/test_validation/test_body.yml -------------------------------------------------------------------------------- /typesafety/test_typeclass/test_validation/test_first_arg.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-python/classes/HEAD/typesafety/test_typeclass/test_validation/test_first_arg.yml -------------------------------------------------------------------------------- /typesafety/test_typing_type.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-python/classes/HEAD/typesafety/test_typing_type.yml --------------------------------------------------------------------------------