METADATA 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377
  1. Metadata-Version: 2.3
  2. Name: Twisted
  3. Version: 24.7.0
  4. Summary: An asynchronous networking framework written in Python
  5. Project-URL: Changelog, https://github.com/twisted/twisted/blob/HEAD/NEWS.rst
  6. Project-URL: Documentation, https://docs.twistedmatrix.com/
  7. Project-URL: Homepage, https://twistedmatrix.com/
  8. Project-URL: Issues, https://twistedmatrix.com/trac/report
  9. Project-URL: Source, https://github.com/twisted/twisted
  10. Project-URL: Twitter, https://twitter.com/twistedmatrix
  11. Author-email: Twisted Matrix Laboratories <twisted-python@twistedmatrix.com>
  12. License: MIT License
  13. License-File: LICENSE
  14. Classifier: Programming Language :: Python :: 3
  15. Classifier: Programming Language :: Python :: 3 :: Only
  16. Classifier: Programming Language :: Python :: 3.8
  17. Classifier: Programming Language :: Python :: 3.9
  18. Classifier: Programming Language :: Python :: 3.10
  19. Classifier: Programming Language :: Python :: 3.11
  20. Classifier: Programming Language :: Python :: 3.12
  21. Requires-Python: >=3.8.0
  22. Requires-Dist: attrs>=21.3.0
  23. Requires-Dist: automat>=0.8.0
  24. Requires-Dist: constantly>=15.1
  25. Requires-Dist: hyperlink>=17.1.1
  26. Requires-Dist: incremental>=24.7.0
  27. Requires-Dist: typing-extensions>=4.2.0
  28. Requires-Dist: zope-interface>=5
  29. Provides-Extra: all-non-platform
  30. Requires-Dist: appdirs>=1.4.0; extra == 'all-non-platform'
  31. Requires-Dist: bcrypt>=3.1.3; extra == 'all-non-platform'
  32. Requires-Dist: cryptography>=3.3; extra == 'all-non-platform'
  33. Requires-Dist: cython-test-exception-raiser<2,>=1.0.2; extra == 'all-non-platform'
  34. Requires-Dist: h2<5.0,>=3.0; extra == 'all-non-platform'
  35. Requires-Dist: hypothesis>=6.56; extra == 'all-non-platform'
  36. Requires-Dist: idna>=2.4; extra == 'all-non-platform'
  37. Requires-Dist: priority<2.0,>=1.1.0; extra == 'all-non-platform'
  38. Requires-Dist: pyhamcrest>=2; extra == 'all-non-platform'
  39. Requires-Dist: pyopenssl>=21.0.0; extra == 'all-non-platform'
  40. Requires-Dist: pyserial>=3.0; extra == 'all-non-platform'
  41. Requires-Dist: pywin32!=226; (platform_system == 'Windows') and extra == 'all-non-platform'
  42. Requires-Dist: service-identity>=18.1.0; extra == 'all-non-platform'
  43. Provides-Extra: all_non_platform
  44. Requires-Dist: appdirs>=1.4.0; extra == 'all_non_platform'
  45. Requires-Dist: bcrypt>=3.1.3; extra == 'all_non_platform'
  46. Requires-Dist: cryptography>=3.3; extra == 'all_non_platform'
  47. Requires-Dist: cython-test-exception-raiser<2,>=1.0.2; extra == 'all_non_platform'
  48. Requires-Dist: h2<5.0,>=3.0; extra == 'all_non_platform'
  49. Requires-Dist: hypothesis>=6.56; extra == 'all_non_platform'
  50. Requires-Dist: idna>=2.4; extra == 'all_non_platform'
  51. Requires-Dist: priority<2.0,>=1.1.0; extra == 'all_non_platform'
  52. Requires-Dist: pyhamcrest>=2; extra == 'all_non_platform'
  53. Requires-Dist: pyopenssl>=21.0.0; extra == 'all_non_platform'
  54. Requires-Dist: pyserial>=3.0; extra == 'all_non_platform'
  55. Requires-Dist: pywin32!=226; (platform_system == 'Windows') and extra == 'all_non_platform'
  56. Requires-Dist: service-identity>=18.1.0; extra == 'all_non_platform'
  57. Provides-Extra: conch
  58. Requires-Dist: appdirs>=1.4.0; extra == 'conch'
  59. Requires-Dist: bcrypt>=3.1.3; extra == 'conch'
  60. Requires-Dist: cryptography>=3.3; extra == 'conch'
  61. Provides-Extra: dev
  62. Requires-Dist: coverage~=7.5; extra == 'dev'
  63. Requires-Dist: cython-test-exception-raiser<2,>=1.0.2; extra == 'dev'
  64. Requires-Dist: hypothesis>=6.56; extra == 'dev'
  65. Requires-Dist: pydoctor~=23.9.0; extra == 'dev'
  66. Requires-Dist: pyflakes~=2.2; extra == 'dev'
  67. Requires-Dist: pyhamcrest>=2; extra == 'dev'
  68. Requires-Dist: python-subunit~=1.4; extra == 'dev'
  69. Requires-Dist: sphinx-rtd-theme~=1.3; extra == 'dev'
  70. Requires-Dist: sphinx<7,>=6; extra == 'dev'
  71. Requires-Dist: towncrier~=23.6; extra == 'dev'
  72. Requires-Dist: twistedchecker~=0.7; extra == 'dev'
  73. Provides-Extra: dev-release
  74. Requires-Dist: pydoctor~=23.9.0; extra == 'dev-release'
  75. Requires-Dist: sphinx-rtd-theme~=1.3; extra == 'dev-release'
  76. Requires-Dist: sphinx<7,>=6; extra == 'dev-release'
  77. Requires-Dist: towncrier~=23.6; extra == 'dev-release'
  78. Provides-Extra: dev_release
  79. Requires-Dist: pydoctor~=23.9.0; extra == 'dev_release'
  80. Requires-Dist: sphinx-rtd-theme~=1.3; extra == 'dev_release'
  81. Requires-Dist: sphinx<7,>=6; extra == 'dev_release'
  82. Requires-Dist: towncrier~=23.6; extra == 'dev_release'
  83. Provides-Extra: gtk-platform
  84. Requires-Dist: appdirs>=1.4.0; extra == 'gtk-platform'
  85. Requires-Dist: bcrypt>=3.1.3; extra == 'gtk-platform'
  86. Requires-Dist: cryptography>=3.3; extra == 'gtk-platform'
  87. Requires-Dist: cython-test-exception-raiser<2,>=1.0.2; extra == 'gtk-platform'
  88. Requires-Dist: h2<5.0,>=3.0; extra == 'gtk-platform'
  89. Requires-Dist: hypothesis>=6.56; extra == 'gtk-platform'
  90. Requires-Dist: idna>=2.4; extra == 'gtk-platform'
  91. Requires-Dist: priority<2.0,>=1.1.0; extra == 'gtk-platform'
  92. Requires-Dist: pygobject; extra == 'gtk-platform'
  93. Requires-Dist: pyhamcrest>=2; extra == 'gtk-platform'
  94. Requires-Dist: pyopenssl>=21.0.0; extra == 'gtk-platform'
  95. Requires-Dist: pyserial>=3.0; extra == 'gtk-platform'
  96. Requires-Dist: pywin32!=226; (platform_system == 'Windows') and extra == 'gtk-platform'
  97. Requires-Dist: service-identity>=18.1.0; extra == 'gtk-platform'
  98. Provides-Extra: gtk_platform
  99. Requires-Dist: appdirs>=1.4.0; extra == 'gtk_platform'
  100. Requires-Dist: bcrypt>=3.1.3; extra == 'gtk_platform'
  101. Requires-Dist: cryptography>=3.3; extra == 'gtk_platform'
  102. Requires-Dist: cython-test-exception-raiser<2,>=1.0.2; extra == 'gtk_platform'
  103. Requires-Dist: h2<5.0,>=3.0; extra == 'gtk_platform'
  104. Requires-Dist: hypothesis>=6.56; extra == 'gtk_platform'
  105. Requires-Dist: idna>=2.4; extra == 'gtk_platform'
  106. Requires-Dist: priority<2.0,>=1.1.0; extra == 'gtk_platform'
  107. Requires-Dist: pygobject; extra == 'gtk_platform'
  108. Requires-Dist: pyhamcrest>=2; extra == 'gtk_platform'
  109. Requires-Dist: pyopenssl>=21.0.0; extra == 'gtk_platform'
  110. Requires-Dist: pyserial>=3.0; extra == 'gtk_platform'
  111. Requires-Dist: pywin32!=226; (platform_system == 'Windows') and extra == 'gtk_platform'
  112. Requires-Dist: service-identity>=18.1.0; extra == 'gtk_platform'
  113. Provides-Extra: http2
  114. Requires-Dist: h2<5.0,>=3.0; extra == 'http2'
  115. Requires-Dist: priority<2.0,>=1.1.0; extra == 'http2'
  116. Provides-Extra: macos-platform
  117. Requires-Dist: appdirs>=1.4.0; extra == 'macos-platform'
  118. Requires-Dist: bcrypt>=3.1.3; extra == 'macos-platform'
  119. Requires-Dist: cryptography>=3.3; extra == 'macos-platform'
  120. Requires-Dist: cython-test-exception-raiser<2,>=1.0.2; extra == 'macos-platform'
  121. Requires-Dist: h2<5.0,>=3.0; extra == 'macos-platform'
  122. Requires-Dist: hypothesis>=6.56; extra == 'macos-platform'
  123. Requires-Dist: idna>=2.4; extra == 'macos-platform'
  124. Requires-Dist: priority<2.0,>=1.1.0; extra == 'macos-platform'
  125. Requires-Dist: pyhamcrest>=2; extra == 'macos-platform'
  126. Requires-Dist: pyobjc-core; extra == 'macos-platform'
  127. Requires-Dist: pyobjc-framework-cfnetwork; extra == 'macos-platform'
  128. Requires-Dist: pyobjc-framework-cocoa; extra == 'macos-platform'
  129. Requires-Dist: pyopenssl>=21.0.0; extra == 'macos-platform'
  130. Requires-Dist: pyserial>=3.0; extra == 'macos-platform'
  131. Requires-Dist: pywin32!=226; (platform_system == 'Windows') and extra == 'macos-platform'
  132. Requires-Dist: service-identity>=18.1.0; extra == 'macos-platform'
  133. Provides-Extra: macos_platform
  134. Requires-Dist: appdirs>=1.4.0; extra == 'macos_platform'
  135. Requires-Dist: bcrypt>=3.1.3; extra == 'macos_platform'
  136. Requires-Dist: cryptography>=3.3; extra == 'macos_platform'
  137. Requires-Dist: cython-test-exception-raiser<2,>=1.0.2; extra == 'macos_platform'
  138. Requires-Dist: h2<5.0,>=3.0; extra == 'macos_platform'
  139. Requires-Dist: hypothesis>=6.56; extra == 'macos_platform'
  140. Requires-Dist: idna>=2.4; extra == 'macos_platform'
  141. Requires-Dist: priority<2.0,>=1.1.0; extra == 'macos_platform'
  142. Requires-Dist: pyhamcrest>=2; extra == 'macos_platform'
  143. Requires-Dist: pyobjc-core; extra == 'macos_platform'
  144. Requires-Dist: pyobjc-framework-cfnetwork; extra == 'macos_platform'
  145. Requires-Dist: pyobjc-framework-cocoa; extra == 'macos_platform'
  146. Requires-Dist: pyopenssl>=21.0.0; extra == 'macos_platform'
  147. Requires-Dist: pyserial>=3.0; extra == 'macos_platform'
  148. Requires-Dist: pywin32!=226; (platform_system == 'Windows') and extra == 'macos_platform'
  149. Requires-Dist: service-identity>=18.1.0; extra == 'macos_platform'
  150. Provides-Extra: mypy
  151. Requires-Dist: appdirs>=1.4.0; extra == 'mypy'
  152. Requires-Dist: bcrypt>=3.1.3; extra == 'mypy'
  153. Requires-Dist: coverage~=7.5; extra == 'mypy'
  154. Requires-Dist: cryptography>=3.3; extra == 'mypy'
  155. Requires-Dist: cython-test-exception-raiser<2,>=1.0.2; extra == 'mypy'
  156. Requires-Dist: h2<5.0,>=3.0; extra == 'mypy'
  157. Requires-Dist: hypothesis>=6.56; extra == 'mypy'
  158. Requires-Dist: idna>=2.4; extra == 'mypy'
  159. Requires-Dist: mypy-zope~=1.0.3; extra == 'mypy'
  160. Requires-Dist: mypy~=1.8; extra == 'mypy'
  161. Requires-Dist: priority<2.0,>=1.1.0; extra == 'mypy'
  162. Requires-Dist: pydoctor~=23.9.0; extra == 'mypy'
  163. Requires-Dist: pyflakes~=2.2; extra == 'mypy'
  164. Requires-Dist: pyhamcrest>=2; extra == 'mypy'
  165. Requires-Dist: pyopenssl>=21.0.0; extra == 'mypy'
  166. Requires-Dist: pyserial>=3.0; extra == 'mypy'
  167. Requires-Dist: python-subunit~=1.4; extra == 'mypy'
  168. Requires-Dist: pywin32!=226; (platform_system == 'Windows') and extra == 'mypy'
  169. Requires-Dist: service-identity>=18.1.0; extra == 'mypy'
  170. Requires-Dist: sphinx-rtd-theme~=1.3; extra == 'mypy'
  171. Requires-Dist: sphinx<7,>=6; extra == 'mypy'
  172. Requires-Dist: towncrier~=23.6; extra == 'mypy'
  173. Requires-Dist: twistedchecker~=0.7; extra == 'mypy'
  174. Requires-Dist: types-pyopenssl; extra == 'mypy'
  175. Requires-Dist: types-setuptools; extra == 'mypy'
  176. Provides-Extra: osx-platform
  177. Requires-Dist: appdirs>=1.4.0; extra == 'osx-platform'
  178. Requires-Dist: bcrypt>=3.1.3; extra == 'osx-platform'
  179. Requires-Dist: cryptography>=3.3; extra == 'osx-platform'
  180. Requires-Dist: cython-test-exception-raiser<2,>=1.0.2; extra == 'osx-platform'
  181. Requires-Dist: h2<5.0,>=3.0; extra == 'osx-platform'
  182. Requires-Dist: hypothesis>=6.56; extra == 'osx-platform'
  183. Requires-Dist: idna>=2.4; extra == 'osx-platform'
  184. Requires-Dist: priority<2.0,>=1.1.0; extra == 'osx-platform'
  185. Requires-Dist: pyhamcrest>=2; extra == 'osx-platform'
  186. Requires-Dist: pyobjc-core; extra == 'osx-platform'
  187. Requires-Dist: pyobjc-framework-cfnetwork; extra == 'osx-platform'
  188. Requires-Dist: pyobjc-framework-cocoa; extra == 'osx-platform'
  189. Requires-Dist: pyopenssl>=21.0.0; extra == 'osx-platform'
  190. Requires-Dist: pyserial>=3.0; extra == 'osx-platform'
  191. Requires-Dist: pywin32!=226; (platform_system == 'Windows') and extra == 'osx-platform'
  192. Requires-Dist: service-identity>=18.1.0; extra == 'osx-platform'
  193. Provides-Extra: osx_platform
  194. Requires-Dist: appdirs>=1.4.0; extra == 'osx_platform'
  195. Requires-Dist: bcrypt>=3.1.3; extra == 'osx_platform'
  196. Requires-Dist: cryptography>=3.3; extra == 'osx_platform'
  197. Requires-Dist: cython-test-exception-raiser<2,>=1.0.2; extra == 'osx_platform'
  198. Requires-Dist: h2<5.0,>=3.0; extra == 'osx_platform'
  199. Requires-Dist: hypothesis>=6.56; extra == 'osx_platform'
  200. Requires-Dist: idna>=2.4; extra == 'osx_platform'
  201. Requires-Dist: priority<2.0,>=1.1.0; extra == 'osx_platform'
  202. Requires-Dist: pyhamcrest>=2; extra == 'osx_platform'
  203. Requires-Dist: pyobjc-core; extra == 'osx_platform'
  204. Requires-Dist: pyobjc-framework-cfnetwork; extra == 'osx_platform'
  205. Requires-Dist: pyobjc-framework-cocoa; extra == 'osx_platform'
  206. Requires-Dist: pyopenssl>=21.0.0; extra == 'osx_platform'
  207. Requires-Dist: pyserial>=3.0; extra == 'osx_platform'
  208. Requires-Dist: pywin32!=226; (platform_system == 'Windows') and extra == 'osx_platform'
  209. Requires-Dist: service-identity>=18.1.0; extra == 'osx_platform'
  210. Provides-Extra: serial
  211. Requires-Dist: pyserial>=3.0; extra == 'serial'
  212. Requires-Dist: pywin32!=226; (platform_system == 'Windows') and extra == 'serial'
  213. Provides-Extra: test
  214. Requires-Dist: cython-test-exception-raiser<2,>=1.0.2; extra == 'test'
  215. Requires-Dist: hypothesis>=6.56; extra == 'test'
  216. Requires-Dist: pyhamcrest>=2; extra == 'test'
  217. Provides-Extra: tls
  218. Requires-Dist: idna>=2.4; extra == 'tls'
  219. Requires-Dist: pyopenssl>=21.0.0; extra == 'tls'
  220. Requires-Dist: service-identity>=18.1.0; extra == 'tls'
  221. Provides-Extra: windows-platform
  222. Requires-Dist: appdirs>=1.4.0; extra == 'windows-platform'
  223. Requires-Dist: bcrypt>=3.1.3; extra == 'windows-platform'
  224. Requires-Dist: cryptography>=3.3; extra == 'windows-platform'
  225. Requires-Dist: cython-test-exception-raiser<2,>=1.0.2; extra == 'windows-platform'
  226. Requires-Dist: h2<5.0,>=3.0; extra == 'windows-platform'
  227. Requires-Dist: hypothesis>=6.56; extra == 'windows-platform'
  228. Requires-Dist: idna>=2.4; extra == 'windows-platform'
  229. Requires-Dist: priority<2.0,>=1.1.0; extra == 'windows-platform'
  230. Requires-Dist: pyhamcrest>=2; extra == 'windows-platform'
  231. Requires-Dist: pyopenssl>=21.0.0; extra == 'windows-platform'
  232. Requires-Dist: pyserial>=3.0; extra == 'windows-platform'
  233. Requires-Dist: pywin32!=226; extra == 'windows-platform'
  234. Requires-Dist: pywin32!=226; (platform_system == 'Windows') and extra == 'windows-platform'
  235. Requires-Dist: service-identity>=18.1.0; extra == 'windows-platform'
  236. Requires-Dist: twisted-iocpsupport>=1.0.2; extra == 'windows-platform'
  237. Provides-Extra: windows_platform
  238. Requires-Dist: appdirs>=1.4.0; extra == 'windows_platform'
  239. Requires-Dist: bcrypt>=3.1.3; extra == 'windows_platform'
  240. Requires-Dist: cryptography>=3.3; extra == 'windows_platform'
  241. Requires-Dist: cython-test-exception-raiser<2,>=1.0.2; extra == 'windows_platform'
  242. Requires-Dist: h2<5.0,>=3.0; extra == 'windows_platform'
  243. Requires-Dist: hypothesis>=6.56; extra == 'windows_platform'
  244. Requires-Dist: idna>=2.4; extra == 'windows_platform'
  245. Requires-Dist: priority<2.0,>=1.1.0; extra == 'windows_platform'
  246. Requires-Dist: pyhamcrest>=2; extra == 'windows_platform'
  247. Requires-Dist: pyopenssl>=21.0.0; extra == 'windows_platform'
  248. Requires-Dist: pyserial>=3.0; extra == 'windows_platform'
  249. Requires-Dist: pywin32!=226; extra == 'windows_platform'
  250. Requires-Dist: pywin32!=226; (platform_system == 'Windows') and extra == 'windows_platform'
  251. Requires-Dist: service-identity>=18.1.0; extra == 'windows_platform'
  252. Requires-Dist: twisted-iocpsupport>=1.0.2; extra == 'windows_platform'
  253. Description-Content-Type: text/x-rst
  254. Twisted
  255. #######
  256. |gitter|_
  257. |rtd|_
  258. |pypi|_
  259. |ci|_
  260. For information on changes in this release, see the `NEWS <https://github.com/twisted/twisted/blob/trunk/NEWS.rst>`_ file.
  261. What is this?
  262. -------------
  263. Twisted is an event-based framework for internet applications, supporting Python 3.6+.
  264. It includes modules for many different purposes, including the following:
  265. - ``twisted.web``: HTTP clients and servers, HTML templating, and a WSGI server
  266. - ``twisted.conch``: SSHv2 and Telnet clients and servers and terminal emulators
  267. - ``twisted.words``: Clients and servers for IRC, XMPP, and other IM protocols
  268. - ``twisted.mail``: IMAPv4, POP3, SMTP clients and servers
  269. - ``twisted.positioning``: Tools for communicating with NMEA-compatible GPS receivers
  270. - ``twisted.names``: DNS client and tools for making your own DNS servers
  271. - ``twisted.trial``: A unit testing framework that integrates well with Twisted-based code.
  272. Twisted supports all major system event loops -- ``select`` (all platforms), ``poll`` (most POSIX platforms), ``epoll`` (Linux), ``kqueue`` (FreeBSD, macOS), IOCP (Windows), and various GUI event loops (GTK+2/3, Qt, wxWidgets).
  273. Third-party reactors can plug into Twisted, and provide support for additional event loops.
  274. Installing
  275. ----------
  276. To install the latest version of Twisted using pip::
  277. $ pip install twisted
  278. Additional instructions for installing this software are in `the installation instructions <https://docs.twisted.org/en/latest/installations.rst>`_.
  279. Documentation and Support
  280. -------------------------
  281. Twisted's documentation is available from the `Twisted Matrix website <https://twistedmatrix.com/documents/current/>`_.
  282. This documentation contains how-tos, code examples, and an API reference.
  283. Help is also available on the `Twisted mailing list <https://mail.python.org/mailman3/lists/twisted.python.org/>`_.
  284. There is also an IRC channel, ``#twisted``,
  285. on the `Libera.Chat <https://libera.chat/>`_ network.
  286. A web client is available at `web.libera.chat <https://web.libera.chat/>`_.
  287. Unit Tests
  288. ----------
  289. Twisted has a comprehensive test suite, which can be run by ``tox``::
  290. $ tox -l # to view all test environments
  291. $ tox -e nocov # to run all the tests without coverage
  292. $ tox -e withcov # to run all the tests with coverage
  293. $ tox -e alldeps-withcov-posix # install all dependencies, run tests with coverage on POSIX platform
  294. You can test running the test suite under the different reactors with the ``TWISTED_REACTOR`` environment variable::
  295. $ env TWISTED_REACTOR=epoll tox -e alldeps-withcov-posix
  296. Some of these tests may fail if you:
  297. * don't have the dependencies required for a particular subsystem installed,
  298. * have a firewall blocking some ports (or things like Multicast, which Linux NAT has shown itself to do), or
  299. * run them as root.
  300. Static Code Checkers
  301. --------------------
  302. You can ensure that code complies to Twisted `coding standards <https://twistedmatrix.com/documents/current/core/development/policy/coding-standard.html>`_::
  303. $ tox -e lint # run pre-commit to check coding stanards
  304. $ tox -e mypy # run MyPy static type checker to check for type errors
  305. Or, for speed, use pre-commit directly::
  306. $ pipx run pre-commit run
  307. Copyright
  308. ---------
  309. All of the code in this distribution is Copyright (c) 2001-2024 Twisted Matrix Laboratories.
  310. Twisted is made available under the MIT license.
  311. The included `LICENSE <https://github.com/twisted/twisted/blob/trunk/LICENSE>`_ file describes this in detail.
  312. Warranty
  313. --------
  314. THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
  315. EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  316. OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
  317. TO THE USE OF THIS SOFTWARE IS WITH YOU.
  318. IN NO EVENT WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
  319. AND/OR REDISTRIBUTE THE LIBRARY, BE LIABLE TO YOU FOR ANY DAMAGES, EVEN IF
  320. SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
  321. DAMAGES.
  322. Again, see the included `LICENSE <https://github.com/twisted/twisted/blob/trunk/LICENSE>`_ file for specific legal details.
  323. .. |pypi| image:: https://img.shields.io/pypi/v/twisted.svg
  324. .. _pypi: https://pypi.python.org/pypi/twisted
  325. .. |gitter| image:: https://img.shields.io/gitter/room/twisted/twisted.svg
  326. .. _gitter: https://gitter.im/twisted/twisted
  327. .. |ci| image:: https://github.com/twisted/twisted/actions/workflows/test.yaml/badge.svg
  328. .. _ci: https://github.com/twisted/twisted
  329. .. |rtd| image:: https://readthedocs.org/projects/twisted/badge/?version=latest&style=flat
  330. .. _rtd: https://docs.twistedmatrix.com