binary.py 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. from ..base import AsyncBase, AsyncIndirectBase
  2. from .utils import delegate_to_executor, proxy_method_directly, proxy_property_directly
  3. @delegate_to_executor(
  4. "close",
  5. "flush",
  6. "isatty",
  7. "read",
  8. "read1",
  9. "readinto",
  10. "readline",
  11. "readlines",
  12. "seek",
  13. "seekable",
  14. "tell",
  15. "truncate",
  16. "writable",
  17. "write",
  18. "writelines",
  19. )
  20. @proxy_method_directly("detach", "fileno", "readable")
  21. @proxy_property_directly("closed", "raw", "name", "mode")
  22. class AsyncBufferedIOBase(AsyncBase):
  23. """The asyncio executor version of io.BufferedWriter and BufferedIOBase."""
  24. @delegate_to_executor("peek")
  25. class AsyncBufferedReader(AsyncBufferedIOBase):
  26. """The asyncio executor version of io.BufferedReader and Random."""
  27. @delegate_to_executor(
  28. "close",
  29. "flush",
  30. "isatty",
  31. "read",
  32. "readall",
  33. "readinto",
  34. "readline",
  35. "readlines",
  36. "seek",
  37. "seekable",
  38. "tell",
  39. "truncate",
  40. "writable",
  41. "write",
  42. "writelines",
  43. )
  44. @proxy_method_directly("fileno", "readable")
  45. @proxy_property_directly("closed", "name", "mode")
  46. class AsyncFileIO(AsyncBase):
  47. """The asyncio executor version of io.FileIO."""
  48. @delegate_to_executor(
  49. "close",
  50. "flush",
  51. "isatty",
  52. "read",
  53. "read1",
  54. "readinto",
  55. "readline",
  56. "readlines",
  57. "seek",
  58. "seekable",
  59. "tell",
  60. "truncate",
  61. "writable",
  62. "write",
  63. "writelines",
  64. )
  65. @proxy_method_directly("detach", "fileno", "readable")
  66. @proxy_property_directly("closed", "raw", "name", "mode")
  67. class AsyncIndirectBufferedIOBase(AsyncIndirectBase):
  68. """The indirect asyncio executor version of io.BufferedWriter and BufferedIOBase."""
  69. @delegate_to_executor("peek")
  70. class AsyncIndirectBufferedReader(AsyncIndirectBufferedIOBase):
  71. """The indirect asyncio executor version of io.BufferedReader and Random."""
  72. @delegate_to_executor(
  73. "close",
  74. "flush",
  75. "isatty",
  76. "read",
  77. "readall",
  78. "readinto",
  79. "readline",
  80. "readlines",
  81. "seek",
  82. "seekable",
  83. "tell",
  84. "truncate",
  85. "writable",
  86. "write",
  87. "writelines",
  88. )
  89. @proxy_method_directly("fileno", "readable")
  90. @proxy_property_directly("closed", "name", "mode")
  91. class AsyncIndirectFileIO(AsyncIndirectBase):
  92. """The indirect asyncio executor version of io.FileIO."""