Metadata-Version: 2.4
Name: Twisted
Version: 26.4.0
Dynamic: Description
Dynamic: Description-Content-Type
Summary: An asynchronous networking framework written in Python
Project-URL: Changelog, https://github.com/twisted/twisted/blob/HEAD/NEWS.rst
Project-URL: Documentation, https://docs.twisted.org/
Project-URL: Homepage, https://twisted.org/
Project-URL: Issues, https://github.com/twisted/twisted/issues
Project-URL: Source, https://github.com/twisted/twisted
Project-URL: Funding-PSF, https://psfmember.org/civicrm/contribute/transact/?reset=1&id=44
Project-URL: Funding-GitHub, https://github.com/sponsors/twisted
Author-email: Twisted Matrix Community <twisted@python.org>
License: MIT License
License-File: LICENSE
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Requires-Python: >=3.9.12
Requires-Dist: attrs>=22.2.0
Requires-Dist: automat>=24.8.0
Requires-Dist: constantly>=15.1
Requires-Dist: hyperlink>=17.1.1
Requires-Dist: incremental>=24.7.0
Requires-Dist: typing-extensions>=4.2.0
Requires-Dist: zope-interface>=5
Provides-Extra: all-non-platform
Requires-Dist: appdirs>=1.4.0; extra == 'all-non-platform'
Requires-Dist: bcrypt>=3.2.1; extra == 'all-non-platform'
Requires-Dist: cryptography>=38; extra == 'all-non-platform'
Requires-Dist: cython-test-exception-raiser<2,>=1.0.2; extra == 'all-non-platform'
Requires-Dist: h2<5.0,>=3.2; extra == 'all-non-platform'
Requires-Dist: httpx[http2]>=0.27; extra == 'all-non-platform'
Requires-Dist: hypothesis>=6.56; extra == 'all-non-platform'
Requires-Dist: idna>=2.4; extra == 'all-non-platform'
Requires-Dist: priority<2.0,>=1.1.0; extra == 'all-non-platform'
Requires-Dist: pyhamcrest>=2; extra == 'all-non-platform'
Requires-Dist: pyopenssl>=25.2.0; extra == 'all-non-platform'
Requires-Dist: pyserial>=3.0; extra == 'all-non-platform'
Requires-Dist: pywin32!=226; (platform_system == 'Windows') and extra == 'all-non-platform'
Requires-Dist: service-identity>=18.1.0; extra == 'all-non-platform'
Requires-Dist: wsproto; extra == 'all-non-platform'
Provides-Extra: all_non_platform
Requires-Dist: appdirs>=1.4.0; extra == 'all_non_platform'
Requires-Dist: bcrypt>=3.2.1; extra == 'all_non_platform'
Requires-Dist: cryptography>=38; extra == 'all_non_platform'
Requires-Dist: cython-test-exception-raiser<2,>=1.0.2; extra == 'all_non_platform'
Requires-Dist: h2<5.0,>=3.2; extra == 'all_non_platform'
Requires-Dist: httpx[http2]>=0.27; extra == 'all_non_platform'
Requires-Dist: hypothesis>=6.56; extra == 'all_non_platform'
Requires-Dist: idna>=2.4; extra == 'all_non_platform'
Requires-Dist: priority<2.0,>=1.1.0; extra == 'all_non_platform'
Requires-Dist: pyhamcrest>=2; extra == 'all_non_platform'
Requires-Dist: pyopenssl>=25.2.0; extra == 'all_non_platform'
Requires-Dist: pyserial>=3.0; extra == 'all_non_platform'
Requires-Dist: pywin32!=226; (platform_system == 'Windows') and extra == 'all_non_platform'
Requires-Dist: service-identity>=18.1.0; extra == 'all_non_platform'
Requires-Dist: wsproto; extra == 'all_non_platform'
Provides-Extra: conch
Requires-Dist: appdirs>=1.4.0; extra == 'conch'
Requires-Dist: bcrypt>=3.2.1; extra == 'conch'
Requires-Dist: cryptography>=38; extra == 'conch'
Provides-Extra: dev
Requires-Dist: coverage~=7.5; extra == 'dev'
Requires-Dist: cython-test-exception-raiser<2,>=1.0.2; extra == 'dev'
Requires-Dist: httpx[http2]>=0.27; extra == 'dev'
Requires-Dist: hypothesis>=6.56; extra == 'dev'
Requires-Dist: pydoctor~=25.4.0; extra == 'dev'
Requires-Dist: pyflakes~=2.2; extra == 'dev'
Requires-Dist: pyhamcrest>=2; extra == 'dev'
Requires-Dist: python-subunit~=1.4; extra == 'dev'
Requires-Dist: sphinx-rtd-theme~=1.3; extra == 'dev'
Requires-Dist: sphinx<7,>=6; extra == 'dev'
Requires-Dist: towncrier~=23.6; extra == 'dev'
Requires-Dist: twistedchecker~=0.7; extra == 'dev'
Provides-Extra: dev-release
Requires-Dist: pydoctor~=25.4.0; extra == 'dev-release'
Requires-Dist: sphinx-rtd-theme~=1.3; extra == 'dev-release'
Requires-Dist: sphinx<7,>=6; extra == 'dev-release'
Requires-Dist: towncrier~=23.6; extra == 'dev-release'
Provides-Extra: dev_release
Requires-Dist: pydoctor~=25.4.0; extra == 'dev_release'
Requires-Dist: sphinx-rtd-theme~=1.3; extra == 'dev_release'
Requires-Dist: sphinx<7,>=6; extra == 'dev_release'
Requires-Dist: towncrier~=23.6; extra == 'dev_release'
Provides-Extra: gtk-platform
Requires-Dist: appdirs>=1.4.0; extra == 'gtk-platform'
Requires-Dist: bcrypt>=3.2.1; extra == 'gtk-platform'
Requires-Dist: cryptography>=38; extra == 'gtk-platform'
Requires-Dist: cython-test-exception-raiser<2,>=1.0.2; extra == 'gtk-platform'
Requires-Dist: h2<5.0,>=3.2; extra == 'gtk-platform'
Requires-Dist: httpx[http2]>=0.27; extra == 'gtk-platform'
Requires-Dist: hypothesis>=6.56; extra == 'gtk-platform'
Requires-Dist: idna>=2.4; extra == 'gtk-platform'
Requires-Dist: priority<2.0,>=1.1.0; extra == 'gtk-platform'
Requires-Dist: pygobject; (python_version >= '3.10') and extra == 'gtk-platform'
Requires-Dist: pygobject<3.52.1; (python_version < '3.10') and extra == 'gtk-platform'
Requires-Dist: pyhamcrest>=2; extra == 'gtk-platform'
Requires-Dist: pyopenssl>=25.2.0; extra == 'gtk-platform'
Requires-Dist: pyserial>=3.0; extra == 'gtk-platform'
Requires-Dist: pywin32!=226; (platform_system == 'Windows') and extra == 'gtk-platform'
Requires-Dist: service-identity>=18.1.0; extra == 'gtk-platform'
Requires-Dist: wsproto; extra == 'gtk-platform'
Provides-Extra: gtk_platform
Requires-Dist: appdirs>=1.4.0; extra == 'gtk_platform'
Requires-Dist: bcrypt>=3.2.1; extra == 'gtk_platform'
Requires-Dist: cryptography>=38; extra == 'gtk_platform'
Requires-Dist: cython-test-exception-raiser<2,>=1.0.2; extra == 'gtk_platform'
Requires-Dist: h2<5.0,>=3.2; extra == 'gtk_platform'
Requires-Dist: httpx[http2]>=0.27; extra == 'gtk_platform'
Requires-Dist: hypothesis>=6.56; extra == 'gtk_platform'
Requires-Dist: idna>=2.4; extra == 'gtk_platform'
Requires-Dist: priority<2.0,>=1.1.0; extra == 'gtk_platform'
Requires-Dist: pygobject; (python_version >= '3.10') and extra == 'gtk_platform'
Requires-Dist: pygobject<3.52.1; (python_version < '3.10') and extra == 'gtk_platform'
Requires-Dist: pyhamcrest>=2; extra == 'gtk_platform'
Requires-Dist: pyopenssl>=25.2.0; extra == 'gtk_platform'
Requires-Dist: pyserial>=3.0; extra == 'gtk_platform'
Requires-Dist: pywin32!=226; (platform_system == 'Windows') and extra == 'gtk_platform'
Requires-Dist: service-identity>=18.1.0; extra == 'gtk_platform'
Requires-Dist: wsproto; extra == 'gtk_platform'
Provides-Extra: http2
Requires-Dist: h2<5.0,>=3.2; extra == 'http2'
Requires-Dist: priority<2.0,>=1.1.0; extra == 'http2'
Provides-Extra: macos-platform
Requires-Dist: appdirs>=1.4.0; extra == 'macos-platform'
Requires-Dist: bcrypt>=3.2.1; extra == 'macos-platform'
Requires-Dist: cryptography>=38; extra == 'macos-platform'
Requires-Dist: cython-test-exception-raiser<2,>=1.0.2; extra == 'macos-platform'
Requires-Dist: h2<5.0,>=3.2; extra == 'macos-platform'
Requires-Dist: httpx[http2]>=0.27; extra == 'macos-platform'
Requires-Dist: hypothesis>=6.56; extra == 'macos-platform'
Requires-Dist: idna>=2.4; extra == 'macos-platform'
Requires-Dist: priority<2.0,>=1.1.0; extra == 'macos-platform'
Requires-Dist: pyhamcrest>=2; extra == 'macos-platform'
Requires-Dist: pyobjc-core>=12; (python_version >= '3.10') and extra == 'macos-platform'
Requires-Dist: pyobjc-framework-cfnetwork>=12; (python_version >= '3.10') and extra == 'macos-platform'
Requires-Dist: pyobjc-framework-cocoa>=12; (python_version >= '3.10') and extra == 'macos-platform'
Requires-Dist: pyopenssl>=25.2.0; extra == 'macos-platform'
Requires-Dist: pyserial>=3.0; extra == 'macos-platform'
Requires-Dist: pywin32!=226; (platform_system == 'Windows') and extra == 'macos-platform'
Requires-Dist: service-identity>=18.1.0; extra == 'macos-platform'
Requires-Dist: wsproto; extra == 'macos-platform'
Provides-Extra: macos_platform
Requires-Dist: appdirs>=1.4.0; extra == 'macos_platform'
Requires-Dist: bcrypt>=3.2.1; extra == 'macos_platform'
Requires-Dist: cryptography>=38; extra == 'macos_platform'
Requires-Dist: cython-test-exception-raiser<2,>=1.0.2; extra == 'macos_platform'
Requires-Dist: h2<5.0,>=3.2; extra == 'macos_platform'
Requires-Dist: httpx[http2]>=0.27; extra == 'macos_platform'
Requires-Dist: hypothesis>=6.56; extra == 'macos_platform'
Requires-Dist: idna>=2.4; extra == 'macos_platform'
Requires-Dist: priority<2.0,>=1.1.0; extra == 'macos_platform'
Requires-Dist: pyhamcrest>=2; extra == 'macos_platform'
Requires-Dist: pyobjc-core>=12; (python_version >= '3.10') and extra == 'macos_platform'
Requires-Dist: pyobjc-framework-cfnetwork>=12; (python_version >= '3.10') and extra == 'macos_platform'
Requires-Dist: pyobjc-framework-cocoa>=12; (python_version >= '3.10') and extra == 'macos_platform'
Requires-Dist: pyopenssl>=25.2.0; extra == 'macos_platform'
Requires-Dist: pyserial>=3.0; extra == 'macos_platform'
Requires-Dist: pywin32!=226; (platform_system == 'Windows') and extra == 'macos_platform'
Requires-Dist: service-identity>=18.1.0; extra == 'macos_platform'
Requires-Dist: wsproto; extra == 'macos_platform'
Provides-Extra: mypy
Requires-Dist: appdirs>=1.4.0; extra == 'mypy'
Requires-Dist: bcrypt>=3.2.1; extra == 'mypy'
Requires-Dist: coverage~=7.5; extra == 'mypy'
Requires-Dist: cryptography>=38; extra == 'mypy'
Requires-Dist: cython-test-exception-raiser<2,>=1.0.2; extra == 'mypy'
Requires-Dist: h2<5.0,>=3.2; extra == 'mypy'
Requires-Dist: httpx[http2]>=0.27; extra == 'mypy'
Requires-Dist: hypothesis>=6.56; extra == 'mypy'
Requires-Dist: idna>=2.4; extra == 'mypy'
Requires-Dist: mypy-zope==1.0.14; extra == 'mypy'
Requires-Dist: mypy==1.19.1; extra == 'mypy'
Requires-Dist: priority<2.0,>=1.1.0; extra == 'mypy'
Requires-Dist: pydoctor~=25.4.0; extra == 'mypy'
Requires-Dist: pyflakes~=2.2; extra == 'mypy'
Requires-Dist: pyhamcrest>=2; extra == 'mypy'
Requires-Dist: pyopenssl>=25.2.0; extra == 'mypy'
Requires-Dist: pyserial>=3.0; extra == 'mypy'
Requires-Dist: python-subunit~=1.4; extra == 'mypy'
Requires-Dist: pywin32!=226; (platform_system == 'Windows') and extra == 'mypy'
Requires-Dist: service-identity>=18.1.0; extra == 'mypy'
Requires-Dist: sphinx-rtd-theme~=1.3; extra == 'mypy'
Requires-Dist: sphinx<7,>=6; extra == 'mypy'
Requires-Dist: towncrier~=23.6; extra == 'mypy'
Requires-Dist: twistedchecker~=0.7; extra == 'mypy'
Requires-Dist: types-pyopenssl; extra == 'mypy'
Requires-Dist: types-setuptools; extra == 'mypy'
Requires-Dist: wsproto; extra == 'mypy'
Provides-Extra: osx-platform
Requires-Dist: appdirs>=1.4.0; extra == 'osx-platform'
Requires-Dist: bcrypt>=3.2.1; extra == 'osx-platform'
Requires-Dist: cryptography>=38; extra == 'osx-platform'
Requires-Dist: cython-test-exception-raiser<2,>=1.0.2; extra == 'osx-platform'
Requires-Dist: h2<5.0,>=3.2; extra == 'osx-platform'
Requires-Dist: httpx[http2]>=0.27; extra == 'osx-platform'
Requires-Dist: hypothesis>=6.56; extra == 'osx-platform'
Requires-Dist: idna>=2.4; extra == 'osx-platform'
Requires-Dist: priority<2.0,>=1.1.0; extra == 'osx-platform'
Requires-Dist: pyhamcrest>=2; extra == 'osx-platform'
Requires-Dist: pyobjc-core>=12; (python_version >= '3.10') and extra == 'osx-platform'
Requires-Dist: pyobjc-framework-cfnetwork>=12; (python_version >= '3.10') and extra == 'osx-platform'
Requires-Dist: pyobjc-framework-cocoa>=12; (python_version >= '3.10') and extra == 'osx-platform'
Requires-Dist: pyopenssl>=25.2.0; extra == 'osx-platform'
Requires-Dist: pyserial>=3.0; extra == 'osx-platform'
Requires-Dist: pywin32!=226; (platform_system == 'Windows') and extra == 'osx-platform'
Requires-Dist: service-identity>=18.1.0; extra == 'osx-platform'
Requires-Dist: wsproto; extra == 'osx-platform'
Provides-Extra: osx_platform
Requires-Dist: appdirs>=1.4.0; extra == 'osx_platform'
Requires-Dist: bcrypt>=3.2.1; extra == 'osx_platform'
Requires-Dist: cryptography>=38; extra == 'osx_platform'
Requires-Dist: cython-test-exception-raiser<2,>=1.0.2; extra == 'osx_platform'
Requires-Dist: h2<5.0,>=3.2; extra == 'osx_platform'
Requires-Dist: httpx[http2]>=0.27; extra == 'osx_platform'
Requires-Dist: hypothesis>=6.56; extra == 'osx_platform'
Requires-Dist: idna>=2.4; extra == 'osx_platform'
Requires-Dist: priority<2.0,>=1.1.0; extra == 'osx_platform'
Requires-Dist: pyhamcrest>=2; extra == 'osx_platform'
Requires-Dist: pyobjc-core>=12; (python_version >= '3.10') and extra == 'osx_platform'
Requires-Dist: pyobjc-framework-cfnetwork>=12; (python_version >= '3.10') and extra == 'osx_platform'
Requires-Dist: pyobjc-framework-cocoa>=12; (python_version >= '3.10') and extra == 'osx_platform'
Requires-Dist: pyopenssl>=25.2.0; extra == 'osx_platform'
Requires-Dist: pyserial>=3.0; extra == 'osx_platform'
Requires-Dist: pywin32!=226; (platform_system == 'Windows') and extra == 'osx_platform'
Requires-Dist: service-identity>=18.1.0; extra == 'osx_platform'
Requires-Dist: wsproto; extra == 'osx_platform'
Provides-Extra: serial
Requires-Dist: pyserial>=3.0; extra == 'serial'
Requires-Dist: pywin32!=226; (platform_system == 'Windows') and extra == 'serial'
Provides-Extra: test
Requires-Dist: cython-test-exception-raiser<2,>=1.0.2; extra == 'test'
Requires-Dist: httpx[http2]>=0.27; extra == 'test'
Requires-Dist: hypothesis>=6.56; extra == 'test'
Requires-Dist: pyhamcrest>=2; extra == 'test'
Provides-Extra: tls
Requires-Dist: idna>=2.4; extra == 'tls'
Requires-Dist: pyopenssl>=25.2.0; extra == 'tls'
Requires-Dist: service-identity>=18.1.0; extra == 'tls'
Provides-Extra: websocket
Requires-Dist: wsproto; extra == 'websocket'
Provides-Extra: windows-platform
Requires-Dist: appdirs>=1.4.0; extra == 'windows-platform'
Requires-Dist: bcrypt>=3.2.1; extra == 'windows-platform'
Requires-Dist: cryptography>=38; extra == 'windows-platform'
Requires-Dist: cython-test-exception-raiser<2,>=1.0.2; extra == 'windows-platform'
Requires-Dist: h2<5.0,>=3.2; extra == 'windows-platform'
Requires-Dist: httpx[http2]>=0.27; extra == 'windows-platform'
Requires-Dist: hypothesis>=6.56; extra == 'windows-platform'
Requires-Dist: idna>=2.4; extra == 'windows-platform'
Requires-Dist: priority<2.0,>=1.1.0; extra == 'windows-platform'
Requires-Dist: pyhamcrest>=2; extra == 'windows-platform'
Requires-Dist: pyopenssl>=25.2.0; extra == 'windows-platform'
Requires-Dist: pyserial>=3.0; extra == 'windows-platform'
Requires-Dist: pywin32!=226; extra == 'windows-platform'
Requires-Dist: pywin32!=226; (platform_system == 'Windows') and extra == 'windows-platform'
Requires-Dist: service-identity>=18.1.0; extra == 'windows-platform'
Requires-Dist: twisted-iocpsupport>=1.0.2; extra == 'windows-platform'
Requires-Dist: wsproto; extra == 'windows-platform'
Provides-Extra: windows_platform
Requires-Dist: appdirs>=1.4.0; extra == 'windows_platform'
Requires-Dist: bcrypt>=3.2.1; extra == 'windows_platform'
Requires-Dist: cryptography>=38; extra == 'windows_platform'
Requires-Dist: cython-test-exception-raiser<2,>=1.0.2; extra == 'windows_platform'
Requires-Dist: h2<5.0,>=3.2; extra == 'windows_platform'
Requires-Dist: httpx[http2]>=0.27; extra == 'windows_platform'
Requires-Dist: hypothesis>=6.56; extra == 'windows_platform'
Requires-Dist: idna>=2.4; extra == 'windows_platform'
Requires-Dist: priority<2.0,>=1.1.0; extra == 'windows_platform'
Requires-Dist: pyhamcrest>=2; extra == 'windows_platform'
Requires-Dist: pyopenssl>=25.2.0; extra == 'windows_platform'
Requires-Dist: pyserial>=3.0; extra == 'windows_platform'
Requires-Dist: pywin32!=226; extra == 'windows_platform'
Requires-Dist: pywin32!=226; (platform_system == 'Windows') and extra == 'windows_platform'
Requires-Dist: service-identity>=18.1.0; extra == 'windows_platform'
Requires-Dist: twisted-iocpsupport>=1.0.2; extra == 'windows_platform'
Requires-Dist: wsproto; extra == 'windows_platform'
