koffi 2.3.6 → 2.3.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (280) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/package.json +2 -2
  3. package/src/cnoke/cnoke.js +3 -7
  4. package/src/cnoke/src/builder.js +7 -4
  5. package/src/cnoke/src/index.js +2 -2
  6. package/src/koffi/build/2.3.8/koffi_darwin_arm64/koffi.node +0 -0
  7. package/src/koffi/build/2.3.8/koffi_darwin_x64/koffi.node +0 -0
  8. package/src/koffi/build/2.3.8/koffi_freebsd_arm64/koffi.node +0 -0
  9. package/src/koffi/build/2.3.8/koffi_freebsd_ia32/koffi.node +0 -0
  10. package/src/koffi/build/2.3.8/koffi_freebsd_x64/koffi.node +0 -0
  11. package/src/koffi/build/2.3.8/koffi_linux_arm32hf/koffi.node +0 -0
  12. package/src/koffi/build/2.3.8/koffi_linux_arm64/koffi.node +0 -0
  13. package/src/koffi/build/2.3.8/koffi_linux_ia32/koffi.node +0 -0
  14. package/src/koffi/build/2.3.8/koffi_linux_riscv64hf64/koffi.node +0 -0
  15. package/src/koffi/build/2.3.8/koffi_linux_x64/koffi.node +0 -0
  16. package/src/koffi/build/2.3.8/koffi_openbsd_ia32/koffi.node +0 -0
  17. package/src/koffi/build/2.3.8/koffi_openbsd_x64/koffi.node +0 -0
  18. package/src/koffi/build/2.3.8/koffi_win32_arm64/koffi.node +0 -0
  19. package/src/koffi/build/2.3.8/koffi_win32_ia32/koffi.node +0 -0
  20. package/src/koffi/build/2.3.8/koffi_win32_x64/koffi.node +0 -0
  21. package/src/koffi/src/abi_arm64.cc +8 -2
  22. package/src/koffi/src/abi_x64_win.cc +8 -2
  23. package/src/koffi/src/abi_x86.cc +8 -2
  24. package/src/koffi/src/ffi.cc +3 -22
  25. package/src/koffi/src/index.d.ts +1 -1
  26. package/src/koffi/src/index.js +1 -0
  27. package/src/koffi/src/win32.hh +10 -4
  28. package/src/koffi/build/2.3.6/koffi_darwin_arm64/koffi.node +0 -0
  29. package/src/koffi/build/2.3.6/koffi_darwin_x64/koffi.node +0 -0
  30. package/src/koffi/build/2.3.6/koffi_freebsd_arm64/koffi.node +0 -0
  31. package/src/koffi/build/2.3.6/koffi_freebsd_ia32/koffi.node +0 -0
  32. package/src/koffi/build/2.3.6/koffi_freebsd_x64/koffi.node +0 -0
  33. package/src/koffi/build/2.3.6/koffi_linux_arm32hf/koffi.node +0 -0
  34. package/src/koffi/build/2.3.6/koffi_linux_arm64/koffi.node +0 -0
  35. package/src/koffi/build/2.3.6/koffi_linux_ia32/koffi.node +0 -0
  36. package/src/koffi/build/2.3.6/koffi_linux_riscv64hf64/koffi.node +0 -0
  37. package/src/koffi/build/2.3.6/koffi_linux_x64/koffi.node +0 -0
  38. package/src/koffi/build/2.3.6/koffi_openbsd_ia32/koffi.node +0 -0
  39. package/src/koffi/build/2.3.6/koffi_openbsd_x64/koffi.node +0 -0
  40. package/src/koffi/build/2.3.6/koffi_win32_arm64/koffi.node +0 -0
  41. package/src/koffi/build/2.3.6/koffi_win32_arm64/koffi.pdb +0 -0
  42. package/src/koffi/build/2.3.6/koffi_win32_ia32/koffi.node +0 -0
  43. package/src/koffi/build/2.3.6/koffi_win32_ia32/koffi.pdb +0 -0
  44. package/src/koffi/build/2.3.6/koffi_win32_x64/koffi.node +0 -0
  45. package/src/koffi/build/2.3.6/koffi_win32_x64/koffi.pdb +0 -0
  46. package/vendor/brotli/BUILD +0 -144
  47. package/vendor/brotli/CMakeLists.txt +0 -421
  48. package/vendor/brotli/CONTRIBUTING.md +0 -27
  49. package/vendor/brotli/LICENSE +0 -19
  50. package/vendor/brotli/MANIFEST.in +0 -17
  51. package/vendor/brotli/Makefile +0 -55
  52. package/vendor/brotli/Makefile.am +0 -38
  53. package/vendor/brotli/README +0 -15
  54. package/vendor/brotli/README.md +0 -104
  55. package/vendor/brotli/WORKSPACE +0 -21
  56. package/vendor/brotli/bootstrap +0 -35
  57. package/vendor/brotli/c/common/constants.c +0 -15
  58. package/vendor/brotli/c/common/constants.h +0 -200
  59. package/vendor/brotli/c/common/context.c +0 -156
  60. package/vendor/brotli/c/common/context.h +0 -113
  61. package/vendor/brotli/c/common/dictionary.c +0 -5914
  62. package/vendor/brotli/c/common/dictionary.h +0 -64
  63. package/vendor/brotli/c/common/platform.c +0 -22
  64. package/vendor/brotli/c/common/platform.h +0 -596
  65. package/vendor/brotli/c/common/transform.c +0 -291
  66. package/vendor/brotli/c/common/transform.h +0 -85
  67. package/vendor/brotli/c/common/version.h +0 -26
  68. package/vendor/brotli/c/dec/bit_reader.c +0 -76
  69. package/vendor/brotli/c/dec/bit_reader.h +0 -351
  70. package/vendor/brotli/c/dec/decode.c +0 -2608
  71. package/vendor/brotli/c/dec/huffman.c +0 -339
  72. package/vendor/brotli/c/dec/huffman.h +0 -121
  73. package/vendor/brotli/c/dec/prefix.h +0 -732
  74. package/vendor/brotli/c/dec/state.c +0 -159
  75. package/vendor/brotli/c/dec/state.h +0 -365
  76. package/vendor/brotli/c/enc/backward_references.c +0 -145
  77. package/vendor/brotli/c/enc/backward_references.h +0 -39
  78. package/vendor/brotli/c/enc/backward_references_hq.c +0 -843
  79. package/vendor/brotli/c/enc/backward_references_hq.h +0 -95
  80. package/vendor/brotli/c/enc/backward_references_inc.h +0 -163
  81. package/vendor/brotli/c/enc/bit_cost.c +0 -35
  82. package/vendor/brotli/c/enc/bit_cost.h +0 -63
  83. package/vendor/brotli/c/enc/bit_cost_inc.h +0 -127
  84. package/vendor/brotli/c/enc/block_encoder_inc.h +0 -34
  85. package/vendor/brotli/c/enc/block_splitter.c +0 -194
  86. package/vendor/brotli/c/enc/block_splitter.h +0 -51
  87. package/vendor/brotli/c/enc/block_splitter_inc.h +0 -440
  88. package/vendor/brotli/c/enc/brotli_bit_stream.c +0 -1314
  89. package/vendor/brotli/c/enc/brotli_bit_stream.h +0 -84
  90. package/vendor/brotli/c/enc/cluster.c +0 -56
  91. package/vendor/brotli/c/enc/cluster.h +0 -48
  92. package/vendor/brotli/c/enc/cluster_inc.h +0 -320
  93. package/vendor/brotli/c/enc/command.c +0 -28
  94. package/vendor/brotli/c/enc/command.h +0 -190
  95. package/vendor/brotli/c/enc/compress_fragment.c +0 -790
  96. package/vendor/brotli/c/enc/compress_fragment.h +0 -61
  97. package/vendor/brotli/c/enc/compress_fragment_two_pass.c +0 -645
  98. package/vendor/brotli/c/enc/compress_fragment_two_pass.h +0 -54
  99. package/vendor/brotli/c/enc/dictionary_hash.c +0 -1846
  100. package/vendor/brotli/c/enc/dictionary_hash.h +0 -25
  101. package/vendor/brotli/c/enc/encode.c +0 -1927
  102. package/vendor/brotli/c/enc/encoder_dict.c +0 -33
  103. package/vendor/brotli/c/enc/encoder_dict.h +0 -43
  104. package/vendor/brotli/c/enc/entropy_encode.c +0 -503
  105. package/vendor/brotli/c/enc/entropy_encode.h +0 -122
  106. package/vendor/brotli/c/enc/entropy_encode_static.h +0 -539
  107. package/vendor/brotli/c/enc/fast_log.c +0 -105
  108. package/vendor/brotli/c/enc/fast_log.h +0 -66
  109. package/vendor/brotli/c/enc/find_match_length.h +0 -79
  110. package/vendor/brotli/c/enc/hash.h +0 -488
  111. package/vendor/brotli/c/enc/hash_composite_inc.h +0 -125
  112. package/vendor/brotli/c/enc/hash_forgetful_chain_inc.h +0 -293
  113. package/vendor/brotli/c/enc/hash_longest_match64_inc.h +0 -267
  114. package/vendor/brotli/c/enc/hash_longest_match_inc.h +0 -262
  115. package/vendor/brotli/c/enc/hash_longest_match_quickly_inc.h +0 -266
  116. package/vendor/brotli/c/enc/hash_rolling_inc.h +0 -212
  117. package/vendor/brotli/c/enc/hash_to_binary_tree_inc.h +0 -329
  118. package/vendor/brotli/c/enc/histogram.c +0 -100
  119. package/vendor/brotli/c/enc/histogram.h +0 -63
  120. package/vendor/brotli/c/enc/histogram_inc.h +0 -51
  121. package/vendor/brotli/c/enc/literal_cost.c +0 -175
  122. package/vendor/brotli/c/enc/literal_cost.h +0 -30
  123. package/vendor/brotli/c/enc/memory.c +0 -170
  124. package/vendor/brotli/c/enc/memory.h +0 -114
  125. package/vendor/brotli/c/enc/metablock.c +0 -663
  126. package/vendor/brotli/c/enc/metablock.h +0 -105
  127. package/vendor/brotli/c/enc/metablock_inc.h +0 -183
  128. package/vendor/brotli/c/enc/params.h +0 -46
  129. package/vendor/brotli/c/enc/prefix.h +0 -53
  130. package/vendor/brotli/c/enc/quality.h +0 -165
  131. package/vendor/brotli/c/enc/ringbuffer.h +0 -167
  132. package/vendor/brotli/c/enc/static_dict.c +0 -486
  133. package/vendor/brotli/c/enc/static_dict.h +0 -40
  134. package/vendor/brotli/c/enc/static_dict_lut.h +0 -5864
  135. package/vendor/brotli/c/enc/utf8_util.c +0 -85
  136. package/vendor/brotli/c/enc/utf8_util.h +0 -32
  137. package/vendor/brotli/c/enc/write_bits.h +0 -87
  138. package/vendor/brotli/c/include/brotli/decode.h +0 -344
  139. package/vendor/brotli/c/include/brotli/encode.h +0 -448
  140. package/vendor/brotli/c/include/brotli/port.h +0 -288
  141. package/vendor/brotli/c/include/brotli/types.h +0 -83
  142. package/vendor/brotli/c/tools/brotli.c +0 -1116
  143. package/vendor/brotli/c/tools/brotli.md +0 -107
  144. package/vendor/brotli/compiler_config_setting.bzl +0 -28
  145. package/vendor/brotli/configure +0 -8
  146. package/vendor/brotli/configure-cmake +0 -318
  147. package/vendor/brotli/configure.ac +0 -14
  148. package/vendor/brotli/docs/brotli.1 +0 -132
  149. package/vendor/brotli/docs/constants.h.3 +0 -47
  150. package/vendor/brotli/docs/decode.h.3 +0 -415
  151. package/vendor/brotli/docs/encode.h.3 +0 -586
  152. package/vendor/brotli/docs/types.h.3 +0 -117
  153. package/vendor/brotli/premake5.lua +0 -78
  154. package/vendor/brotli/python/Makefile +0 -57
  155. package/vendor/brotli/python/README.md +0 -54
  156. package/vendor/brotli/python/_brotli.cc +0 -753
  157. package/vendor/brotli/python/bro.py +0 -160
  158. package/vendor/brotli/python/brotli.py +0 -56
  159. package/vendor/brotli/python/tests/__init__.py +0 -0
  160. package/vendor/brotli/python/tests/_test_utils.py +0 -112
  161. package/vendor/brotli/python/tests/bro_test.py +0 -102
  162. package/vendor/brotli/python/tests/compress_test.py +0 -41
  163. package/vendor/brotli/python/tests/compressor_test.py +0 -94
  164. package/vendor/brotli/python/tests/decompress_test.py +0 -42
  165. package/vendor/brotli/python/tests/decompressor_test.py +0 -59
  166. package/vendor/brotli/scripts/libbrotlicommon.pc.in +0 -11
  167. package/vendor/brotli/scripts/libbrotlidec.pc.in +0 -12
  168. package/vendor/brotli/scripts/libbrotlienc.pc.in +0 -12
  169. package/vendor/brotli/scripts/sources.lst +0 -104
  170. package/vendor/brotli/setup.cfg +0 -5
  171. package/vendor/brotli/setup.py +0 -293
  172. package/vendor/brotli/tests/Makefile +0 -17
  173. package/vendor/brotli/tests/compatibility_test.sh +0 -25
  174. package/vendor/brotli/tests/roundtrip_test.sh +0 -36
  175. package/vendor/brotli/tests/run-compatibility-test.cmake +0 -31
  176. package/vendor/brotli/tests/run-roundtrip-test.cmake +0 -36
  177. package/vendor/brotli/tests/testdata/empty +0 -0
  178. package/vendor/brotli/tests/testdata/empty.compressed +0 -1
  179. package/vendor/brotli/tests/testdata/ukkonooa +0 -1
  180. package/vendor/brotli/tests/testdata/ukkonooa.compressed +0 -0
  181. package/vendor/dragonbox/CMakeLists.txt +0 -123
  182. package/vendor/dragonbox/LICENSE-Apache2-LLVM +0 -218
  183. package/vendor/dragonbox/LICENSE-Boost +0 -23
  184. package/vendor/dragonbox/README.md +0 -277
  185. package/vendor/dragonbox/cmake/dragonboxConfig.cmake +0 -1
  186. package/vendor/dragonbox/include/dragonbox/dragonbox.h +0 -2674
  187. package/vendor/dragonbox/include/dragonbox/dragonbox_to_chars.h +0 -108
  188. package/vendor/dragonbox/other_files/Dragonbox.pdf +0 -0
  189. package/vendor/dragonbox/other_files/Dragonbox_old.pdf +0 -0
  190. package/vendor/dragonbox/other_files/milo_benchmark.png +0 -0
  191. package/vendor/dragonbox/other_files/unknown_win64_vc2019.html +0 -540
  192. package/vendor/dragonbox/other_files/unknown_win64_vc2019_randomdigit_time.png +0 -0
  193. package/vendor/dragonbox/source/dragonbox_to_chars.cpp +0 -303
  194. package/vendor/dragonbox/subproject/3rdparty/grisu_exact/CMakeLists.txt +0 -24
  195. package/vendor/dragonbox/subproject/3rdparty/grisu_exact/fp_to_chars.cpp +0 -238
  196. package/vendor/dragonbox/subproject/3rdparty/grisu_exact/fp_to_chars.h +0 -95
  197. package/vendor/dragonbox/subproject/3rdparty/grisu_exact/grisu_exact.h +0 -2666
  198. package/vendor/dragonbox/subproject/3rdparty/ryu/CMakeLists.txt +0 -16
  199. package/vendor/dragonbox/subproject/3rdparty/ryu/ryu/common.h +0 -114
  200. package/vendor/dragonbox/subproject/3rdparty/ryu/ryu/d2s.c +0 -509
  201. package/vendor/dragonbox/subproject/3rdparty/ryu/ryu/d2s_full_table.h +0 -367
  202. package/vendor/dragonbox/subproject/3rdparty/ryu/ryu/d2s_intrinsics.h +0 -357
  203. package/vendor/dragonbox/subproject/3rdparty/ryu/ryu/digit_table.h +0 -35
  204. package/vendor/dragonbox/subproject/3rdparty/ryu/ryu/f2s.c +0 -345
  205. package/vendor/dragonbox/subproject/3rdparty/ryu/ryu/f2s_full_table.h +0 -55
  206. package/vendor/dragonbox/subproject/3rdparty/ryu/ryu/f2s_intrinsics.h +0 -128
  207. package/vendor/dragonbox/subproject/3rdparty/ryu/ryu/ryu.h +0 -46
  208. package/vendor/dragonbox/subproject/3rdparty/schubfach/CMakeLists.txt +0 -22
  209. package/vendor/dragonbox/subproject/3rdparty/schubfach/schubfach_32.cc +0 -699
  210. package/vendor/dragonbox/subproject/3rdparty/schubfach/schubfach_32.h +0 -31
  211. package/vendor/dragonbox/subproject/3rdparty/schubfach/schubfach_64.cc +0 -1354
  212. package/vendor/dragonbox/subproject/3rdparty/schubfach/schubfach_64.h +0 -31
  213. package/vendor/dragonbox/subproject/3rdparty/shaded_plots/example_shaded_plots.m +0 -68
  214. package/vendor/dragonbox/subproject/3rdparty/shaded_plots/license.txt +0 -25
  215. package/vendor/dragonbox/subproject/3rdparty/shaded_plots/plot_distribution.m +0 -92
  216. package/vendor/dragonbox/subproject/3rdparty/shaded_plots/plot_distribution_prctile.m +0 -121
  217. package/vendor/dragonbox/subproject/3rdparty/shaded_plots/plot_histogram_shaded.m +0 -99
  218. package/vendor/dragonbox/subproject/3rdparty/shaded_plots/plot_shaded.m +0 -93
  219. package/vendor/dragonbox/subproject/benchmark/CMakeLists.txt +0 -65
  220. package/vendor/dragonbox/subproject/benchmark/include/benchmark.h +0 -40
  221. package/vendor/dragonbox/subproject/benchmark/matlab/plot_benchmarks.m +0 -22
  222. package/vendor/dragonbox/subproject/benchmark/matlab/plot_digit_benchmark.m +0 -78
  223. package/vendor/dragonbox/subproject/benchmark/matlab/plot_uniform_benchmark.m +0 -95
  224. package/vendor/dragonbox/subproject/benchmark/results/digits_benchmark_binary32_clang.png +0 -0
  225. package/vendor/dragonbox/subproject/benchmark/results/digits_benchmark_binary32_msvc.png +0 -0
  226. package/vendor/dragonbox/subproject/benchmark/results/digits_benchmark_binary64_clang.png +0 -0
  227. package/vendor/dragonbox/subproject/benchmark/results/digits_benchmark_binary64_msvc.png +0 -0
  228. package/vendor/dragonbox/subproject/benchmark/results/uniform_benchmark_binary32_clang.png +0 -0
  229. package/vendor/dragonbox/subproject/benchmark/results/uniform_benchmark_binary32_msvc.png +0 -0
  230. package/vendor/dragonbox/subproject/benchmark/results/uniform_benchmark_binary64_clang.png +0 -0
  231. package/vendor/dragonbox/subproject/benchmark/results/uniform_benchmark_binary64_msvc.png +0 -0
  232. package/vendor/dragonbox/subproject/benchmark/source/benchmark.cpp +0 -238
  233. package/vendor/dragonbox/subproject/benchmark/source/dragonbox.cpp +0 -30
  234. package/vendor/dragonbox/subproject/benchmark/source/grisu_exact.cpp +0 -36
  235. package/vendor/dragonbox/subproject/benchmark/source/ryu.cpp +0 -27
  236. package/vendor/dragonbox/subproject/benchmark/source/schubfach.cpp +0 -31
  237. package/vendor/dragonbox/subproject/common/CMakeLists.txt +0 -42
  238. package/vendor/dragonbox/subproject/common/include/best_rational_approx.h +0 -97
  239. package/vendor/dragonbox/subproject/common/include/big_uint.h +0 -218
  240. package/vendor/dragonbox/subproject/common/include/continued_fractions.h +0 -174
  241. package/vendor/dragonbox/subproject/common/include/good_rational_approx.h +0 -267
  242. package/vendor/dragonbox/subproject/common/include/random_float.h +0 -182
  243. package/vendor/dragonbox/subproject/common/include/rational_continued_fractions.h +0 -57
  244. package/vendor/dragonbox/subproject/common/source/big_uint.cpp +0 -602
  245. package/vendor/dragonbox/subproject/meta/CMakeLists.txt +0 -41
  246. package/vendor/dragonbox/subproject/meta/results/binary32_generated_cache.txt +0 -82
  247. package/vendor/dragonbox/subproject/meta/results/binary64_compressed_cache_error_table.txt +0 -10
  248. package/vendor/dragonbox/subproject/meta/results/binary64_generated_cache.txt +0 -623
  249. package/vendor/dragonbox/subproject/meta/source/generate_cache.cpp +0 -126
  250. package/vendor/dragonbox/subproject/meta/source/live_test.cpp +0 -81
  251. package/vendor/dragonbox/subproject/meta/source/perf_test.cpp +0 -104
  252. package/vendor/dragonbox/subproject/meta/source/sandbox.cpp +0 -20
  253. package/vendor/dragonbox/subproject/test/CMakeLists.txt +0 -70
  254. package/vendor/dragonbox/subproject/test/results/binary32.csv +0 -255
  255. package/vendor/dragonbox/subproject/test/results/binary64.csv +0 -2047
  256. package/vendor/dragonbox/subproject/test/results/plot_required_bits.m +0 -18
  257. package/vendor/dragonbox/subproject/test/source/test_all_shorter_interval_cases.cpp +0 -88
  258. package/vendor/dragonbox/subproject/test/source/uniform_random_test.cpp +0 -95
  259. package/vendor/dragonbox/subproject/test/source/verify_cache_precision.cpp +0 -338
  260. package/vendor/dragonbox/subproject/test/source/verify_compressed_cache.cpp +0 -154
  261. package/vendor/dragonbox/subproject/test/source/verify_fast_multiplication.cpp +0 -168
  262. package/vendor/dragonbox/subproject/test/source/verify_log_computation.cpp +0 -251
  263. package/vendor/dragonbox/subproject/test/source/verify_magic_division.cpp +0 -113
  264. package/vendor/miniz/ChangeLog.md +0 -239
  265. package/vendor/miniz/LICENSE +0 -22
  266. package/vendor/miniz/examples/example1.c +0 -105
  267. package/vendor/miniz/examples/example2.c +0 -164
  268. package/vendor/miniz/examples/example3.c +0 -269
  269. package/vendor/miniz/examples/example4.c +0 -102
  270. package/vendor/miniz/examples/example5.c +0 -327
  271. package/vendor/miniz/examples/example6.c +0 -166
  272. package/vendor/miniz/miniz.c +0 -7835
  273. package/vendor/miniz/miniz.h +0 -1422
  274. package/vendor/miniz/readme.md +0 -46
  275. /package/src/koffi/build/{2.3.6 → 2.3.8}/koffi_win32_arm64/koffi.exp +0 -0
  276. /package/src/koffi/build/{2.3.6 → 2.3.8}/koffi_win32_arm64/koffi.lib +0 -0
  277. /package/src/koffi/build/{2.3.6 → 2.3.8}/koffi_win32_ia32/koffi.exp +0 -0
  278. /package/src/koffi/build/{2.3.6 → 2.3.8}/koffi_win32_ia32/koffi.lib +0 -0
  279. /package/src/koffi/build/{2.3.6 → 2.3.8}/koffi_win32_x64/koffi.exp +0 -0
  280. /package/src/koffi/build/{2.3.6 → 2.3.8}/koffi_win32_x64/koffi.lib +0 -0
@@ -1,160 +0,0 @@
1
- #! /usr/bin/env python
2
- """Compression/decompression utility using the Brotli algorithm."""
3
-
4
- from __future__ import print_function
5
- import argparse
6
- import sys
7
- import os
8
- import platform
9
-
10
- import brotli
11
-
12
- # default values of encoder parameters
13
- DEFAULT_PARAMS = {
14
- 'mode': brotli.MODE_GENERIC,
15
- 'quality': 11,
16
- 'lgwin': 22,
17
- 'lgblock': 0,
18
- }
19
-
20
-
21
- def get_binary_stdio(stream):
22
- """ Return the specified standard input, output or errors stream as a
23
- 'raw' buffer object suitable for reading/writing binary data from/to it.
24
- """
25
- assert stream in ['stdin', 'stdout', 'stderr'], 'invalid stream name'
26
- stdio = getattr(sys, stream)
27
- if sys.version_info[0] < 3:
28
- if sys.platform == 'win32':
29
- # set I/O stream binary flag on python2.x (Windows)
30
- runtime = platform.python_implementation()
31
- if runtime == 'PyPy':
32
- # the msvcrt trick doesn't work in pypy, so I use fdopen
33
- mode = 'rb' if stream == 'stdin' else 'wb'
34
- stdio = os.fdopen(stdio.fileno(), mode, 0)
35
- else:
36
- # this works with CPython -- untested on other implementations
37
- import msvcrt
38
- msvcrt.setmode(stdio.fileno(), os.O_BINARY)
39
- return stdio
40
- else:
41
- # get 'buffer' attribute to read/write binary data on python3.x
42
- if hasattr(stdio, 'buffer'):
43
- return stdio.buffer
44
- else:
45
- orig_stdio = getattr(sys, '__%s__' % stream)
46
- return orig_stdio.buffer
47
-
48
-
49
- def main(args=None):
50
-
51
- parser = argparse.ArgumentParser(
52
- prog=os.path.basename(__file__), description=__doc__)
53
- parser.add_argument(
54
- '--version', action='version', version=brotli.__version__)
55
- parser.add_argument(
56
- '-i',
57
- '--input',
58
- metavar='FILE',
59
- type=str,
60
- dest='infile',
61
- help='Input file',
62
- default=None)
63
- parser.add_argument(
64
- '-o',
65
- '--output',
66
- metavar='FILE',
67
- type=str,
68
- dest='outfile',
69
- help='Output file',
70
- default=None)
71
- parser.add_argument(
72
- '-f',
73
- '--force',
74
- action='store_true',
75
- help='Overwrite existing output file',
76
- default=False)
77
- parser.add_argument(
78
- '-d',
79
- '--decompress',
80
- action='store_true',
81
- help='Decompress input file',
82
- default=False)
83
- params = parser.add_argument_group('optional encoder parameters')
84
- params.add_argument(
85
- '-m',
86
- '--mode',
87
- metavar='MODE',
88
- type=int,
89
- choices=[0, 1, 2],
90
- help='The compression mode can be 0 for generic input, '
91
- '1 for UTF-8 encoded text, or 2 for WOFF 2.0 font data. '
92
- 'Defaults to 0.')
93
- params.add_argument(
94
- '-q',
95
- '--quality',
96
- metavar='QUALITY',
97
- type=int,
98
- choices=list(range(0, 12)),
99
- help='Controls the compression-speed vs compression-density '
100
- 'tradeoff. The higher the quality, the slower the '
101
- 'compression. Range is 0 to 11. Defaults to 11.')
102
- params.add_argument(
103
- '--lgwin',
104
- metavar='LGWIN',
105
- type=int,
106
- choices=list(range(10, 25)),
107
- help='Base 2 logarithm of the sliding window size. Range is '
108
- '10 to 24. Defaults to 22.')
109
- params.add_argument(
110
- '--lgblock',
111
- metavar='LGBLOCK',
112
- type=int,
113
- choices=[0] + list(range(16, 25)),
114
- help='Base 2 logarithm of the maximum input block size. '
115
- 'Range is 16 to 24. If set to 0, the value will be set based '
116
- 'on the quality. Defaults to 0.')
117
- # set default values using global DEFAULT_PARAMS dictionary
118
- parser.set_defaults(**DEFAULT_PARAMS)
119
-
120
- options = parser.parse_args(args=args)
121
-
122
- if options.infile:
123
- if not os.path.isfile(options.infile):
124
- parser.error('file "%s" not found' % options.infile)
125
- with open(options.infile, 'rb') as infile:
126
- data = infile.read()
127
- else:
128
- if sys.stdin.isatty():
129
- # interactive console, just quit
130
- parser.error('no input')
131
- infile = get_binary_stdio('stdin')
132
- data = infile.read()
133
-
134
- if options.outfile:
135
- if os.path.isfile(options.outfile) and not options.force:
136
- parser.error('output file exists')
137
- outfile = open(options.outfile, 'wb')
138
- else:
139
- outfile = get_binary_stdio('stdout')
140
-
141
- try:
142
- if options.decompress:
143
- data = brotli.decompress(data)
144
- else:
145
- data = brotli.compress(
146
- data,
147
- mode=options.mode,
148
- quality=options.quality,
149
- lgwin=options.lgwin,
150
- lgblock=options.lgblock)
151
- except brotli.error as e:
152
- parser.exit(1,
153
- 'bro: error: %s: %s' % (e, options.infile or 'sys.stdin'))
154
-
155
- outfile.write(data)
156
- outfile.close()
157
-
158
-
159
- if __name__ == '__main__':
160
- main()
@@ -1,56 +0,0 @@
1
- # Copyright 2016 The Brotli Authors. All rights reserved.
2
- #
3
- # Distributed under MIT license.
4
- # See file LICENSE for detail or copy at https://opensource.org/licenses/MIT
5
-
6
- """Functions to compress and decompress data using the Brotli library."""
7
-
8
- import _brotli
9
-
10
-
11
- # The library version.
12
- __version__ = _brotli.__version__
13
-
14
- # The compression mode.
15
- MODE_GENERIC = _brotli.MODE_GENERIC
16
- MODE_TEXT = _brotli.MODE_TEXT
17
- MODE_FONT = _brotli.MODE_FONT
18
-
19
- # The Compressor object.
20
- Compressor = _brotli.Compressor
21
-
22
- # The Decompressor object.
23
- Decompressor = _brotli.Decompressor
24
-
25
- # Compress a byte string.
26
- def compress(string, mode=MODE_GENERIC, quality=11, lgwin=22, lgblock=0):
27
- """Compress a byte string.
28
-
29
- Args:
30
- string (bytes): The input data.
31
- mode (int, optional): The compression mode can be MODE_GENERIC (default),
32
- MODE_TEXT (for UTF-8 format text input) or MODE_FONT (for WOFF 2.0).
33
- quality (int, optional): Controls the compression-speed vs compression-
34
- density tradeoff. The higher the quality, the slower the compression.
35
- Range is 0 to 11. Defaults to 11.
36
- lgwin (int, optional): Base 2 logarithm of the sliding window size. Range
37
- is 10 to 24. Defaults to 22.
38
- lgblock (int, optional): Base 2 logarithm of the maximum input block size.
39
- Range is 16 to 24. If set to 0, the value will be set based on the
40
- quality. Defaults to 0.
41
-
42
- Returns:
43
- The compressed byte string.
44
-
45
- Raises:
46
- brotli.error: If arguments are invalid, or compressor fails.
47
- """
48
- compressor = Compressor(mode=mode, quality=quality, lgwin=lgwin,
49
- lgblock=lgblock)
50
- return compressor.process(string) + compressor.finish()
51
-
52
- # Decompress a compressed byte string.
53
- decompress = _brotli.decompress
54
-
55
- # Raised if compression or decompression fails.
56
- error = _brotli.error
File without changes
@@ -1,112 +0,0 @@
1
- from __future__ import print_function
2
- import filecmp
3
- import glob
4
- import itertools
5
- import os
6
- import sys
7
- import sysconfig
8
- import tempfile
9
- import unittest
10
-
11
-
12
- project_dir = os.path.abspath(os.path.join(__file__, '..', '..', '..'))
13
- src_dir = os.path.join(project_dir, 'python')
14
- test_dir = os.path.join(project_dir, 'tests')
15
-
16
- python_exe = sys.executable or 'python'
17
- bro_path = os.path.join(src_dir, 'bro.py')
18
- BRO_ARGS = [python_exe, bro_path]
19
-
20
- # Get the platform/version-specific build folder.
21
- # By default, the distutils build base is in the same location as setup.py.
22
- platform_lib_name = 'lib.{platform}-{version[0]}.{version[1]}'.format(
23
- platform=sysconfig.get_platform(), version=sys.version_info)
24
- build_dir = os.path.join(project_dir, 'bin', platform_lib_name)
25
-
26
- # Prepend the build folder to sys.path and the PYTHONPATH environment variable.
27
- if build_dir not in sys.path:
28
- sys.path.insert(0, build_dir)
29
- TEST_ENV = os.environ.copy()
30
- if 'PYTHONPATH' not in TEST_ENV:
31
- TEST_ENV['PYTHONPATH'] = build_dir
32
- else:
33
- TEST_ENV['PYTHONPATH'] = build_dir + os.pathsep + TEST_ENV['PYTHONPATH']
34
-
35
- TESTDATA_DIR = os.path.join(test_dir, 'testdata')
36
-
37
- TESTDATA_FILES = [
38
- 'empty', # Empty file
39
- '10x10y', # Small text
40
- 'alice29.txt', # Large text
41
- 'random_org_10k.bin', # Small data
42
- 'mapsdatazrh', # Large data
43
- ]
44
-
45
- TESTDATA_PATHS = [os.path.join(TESTDATA_DIR, f) for f in TESTDATA_FILES]
46
-
47
- TESTDATA_PATHS_FOR_DECOMPRESSION = glob.glob(
48
- os.path.join(TESTDATA_DIR, '*.compressed'))
49
-
50
- TEMP_DIR = tempfile.mkdtemp()
51
-
52
-
53
- def get_temp_compressed_name(filename):
54
- return os.path.join(TEMP_DIR, os.path.basename(filename + '.bro'))
55
-
56
-
57
- def get_temp_uncompressed_name(filename):
58
- return os.path.join(TEMP_DIR, os.path.basename(filename + '.unbro'))
59
-
60
-
61
- def bind_method_args(method, *args, **kwargs):
62
- return lambda self: method(self, *args, **kwargs)
63
-
64
-
65
- def generate_test_methods(test_case_class,
66
- for_decompression=False,
67
- variants=None):
68
- # Add test methods for each test data file. This makes identifying problems
69
- # with specific compression scenarios easier.
70
- if for_decompression:
71
- paths = TESTDATA_PATHS_FOR_DECOMPRESSION
72
- else:
73
- paths = TESTDATA_PATHS
74
- opts = []
75
- if variants:
76
- opts_list = []
77
- for k, v in variants.items():
78
- opts_list.append([r for r in itertools.product([k], v)])
79
- for o in itertools.product(*opts_list):
80
- opts_name = '_'.join([str(i) for i in itertools.chain(*o)])
81
- opts_dict = dict(o)
82
- opts.append([opts_name, opts_dict])
83
- else:
84
- opts.append(['', {}])
85
- for method in [m for m in dir(test_case_class) if m.startswith('_test')]:
86
- for testdata in paths:
87
- for (opts_name, opts_dict) in opts:
88
- f = os.path.splitext(os.path.basename(testdata))[0]
89
- name = 'test_{method}_{options}_{file}'.format(
90
- method=method, options=opts_name, file=f)
91
- func = bind_method_args(
92
- getattr(test_case_class, method), testdata, **opts_dict)
93
- setattr(test_case_class, name, func)
94
-
95
-
96
- class TestCase(unittest.TestCase):
97
-
98
- def tearDown(self):
99
- for f in TESTDATA_PATHS:
100
- try:
101
- os.unlink(get_temp_compressed_name(f))
102
- except OSError:
103
- pass
104
- try:
105
- os.unlink(get_temp_uncompressed_name(f))
106
- except OSError:
107
- pass
108
-
109
- def assertFilesMatch(self, first, second):
110
- self.assertTrue(
111
- filecmp.cmp(first, second, shallow=False),
112
- 'File {} differs from {}'.format(first, second))
@@ -1,102 +0,0 @@
1
- # Copyright 2016 The Brotli Authors. All rights reserved.
2
- #
3
- # Distributed under MIT license.
4
- # See file LICENSE for detail or copy at https://opensource.org/licenses/MIT
5
-
6
- import subprocess
7
- import unittest
8
-
9
- from . import _test_utils
10
- import brotli
11
-
12
- BRO_ARGS = _test_utils.BRO_ARGS
13
- TEST_ENV = _test_utils.TEST_ENV
14
-
15
-
16
- def _get_original_name(test_data):
17
- return test_data.split('.compressed')[0]
18
-
19
-
20
- class TestBroDecompress(_test_utils.TestCase):
21
-
22
- def _check_decompression(self, test_data):
23
- # Verify decompression matches the original.
24
- temp_uncompressed = _test_utils.get_temp_uncompressed_name(test_data)
25
- original = _get_original_name(test_data)
26
- self.assertFilesMatch(temp_uncompressed, original)
27
-
28
- def _decompress_file(self, test_data):
29
- temp_uncompressed = _test_utils.get_temp_uncompressed_name(test_data)
30
- args = BRO_ARGS + ['-f', '-d', '-i', test_data, '-o', temp_uncompressed]
31
- subprocess.check_call(args, env=TEST_ENV)
32
-
33
- def _decompress_pipe(self, test_data):
34
- temp_uncompressed = _test_utils.get_temp_uncompressed_name(test_data)
35
- args = BRO_ARGS + ['-d']
36
- with open(temp_uncompressed, 'wb') as out_file:
37
- with open(test_data, 'rb') as in_file:
38
- subprocess.check_call(
39
- args, stdin=in_file, stdout=out_file, env=TEST_ENV)
40
-
41
- def _test_decompress_file(self, test_data):
42
- self._decompress_file(test_data)
43
- self._check_decompression(test_data)
44
-
45
- def _test_decompress_pipe(self, test_data):
46
- self._decompress_pipe(test_data)
47
- self._check_decompression(test_data)
48
-
49
-
50
- _test_utils.generate_test_methods(TestBroDecompress, for_decompression=True)
51
-
52
-
53
- class TestBroCompress(_test_utils.TestCase):
54
-
55
- VARIANTS = {'quality': (1, 6, 9, 11), 'lgwin': (10, 15, 20, 24)}
56
-
57
- def _check_decompression(self, test_data, **kwargs):
58
- # Write decompression to temp file and verify it matches the original.
59
- temp_uncompressed = _test_utils.get_temp_uncompressed_name(test_data)
60
- temp_compressed = _test_utils.get_temp_compressed_name(test_data)
61
- original = test_data
62
- args = BRO_ARGS + ['-f', '-d']
63
- args.extend(['-i', temp_compressed, '-o', temp_uncompressed])
64
- subprocess.check_call(args, env=TEST_ENV)
65
- self.assertFilesMatch(temp_uncompressed, original)
66
-
67
- def _compress_file(self, test_data, **kwargs):
68
- temp_compressed = _test_utils.get_temp_compressed_name(test_data)
69
- args = BRO_ARGS + ['-f']
70
- if 'quality' in kwargs:
71
- args.extend(['-q', str(kwargs['quality'])])
72
- if 'lgwin' in kwargs:
73
- args.extend(['--lgwin', str(kwargs['lgwin'])])
74
- args.extend(['-i', test_data, '-o', temp_compressed])
75
- subprocess.check_call(args, env=TEST_ENV)
76
-
77
- def _compress_pipe(self, test_data, **kwargs):
78
- temp_compressed = _test_utils.get_temp_compressed_name(test_data)
79
- args = BRO_ARGS
80
- if 'quality' in kwargs:
81
- args.extend(['-q', str(kwargs['quality'])])
82
- if 'lgwin' in kwargs:
83
- args.extend(['--lgwin', str(kwargs['lgwin'])])
84
- with open(temp_compressed, 'wb') as out_file:
85
- with open(test_data, 'rb') as in_file:
86
- subprocess.check_call(
87
- args, stdin=in_file, stdout=out_file, env=TEST_ENV)
88
-
89
- def _test_compress_file(self, test_data, **kwargs):
90
- self._compress_file(test_data, **kwargs)
91
- self._check_decompression(test_data)
92
-
93
- def _test_compress_pipe(self, test_data, **kwargs):
94
- self._compress_pipe(test_data, **kwargs)
95
- self._check_decompression(test_data)
96
-
97
-
98
- _test_utils.generate_test_methods(
99
- TestBroCompress, variants=TestBroCompress.VARIANTS)
100
-
101
- if __name__ == '__main__':
102
- unittest.main()
@@ -1,41 +0,0 @@
1
- # Copyright 2016 The Brotli Authors. All rights reserved.
2
- #
3
- # Distributed under MIT license.
4
- # See file LICENSE for detail or copy at https://opensource.org/licenses/MIT
5
-
6
- import unittest
7
-
8
- from . import _test_utils
9
- import brotli
10
-
11
-
12
- class TestCompress(_test_utils.TestCase):
13
-
14
- VARIANTS = {'quality': (1, 6, 9, 11), 'lgwin': (10, 15, 20, 24)}
15
-
16
- def _check_decompression(self, test_data, **kwargs):
17
- kwargs = {}
18
- # Write decompression to temp file and verify it matches the original.
19
- temp_uncompressed = _test_utils.get_temp_uncompressed_name(test_data)
20
- temp_compressed = _test_utils.get_temp_compressed_name(test_data)
21
- original = test_data
22
- with open(temp_uncompressed, 'wb') as out_file:
23
- with open(temp_compressed, 'rb') as in_file:
24
- out_file.write(brotli.decompress(in_file.read(), **kwargs))
25
- self.assertFilesMatch(temp_uncompressed, original)
26
-
27
- def _compress(self, test_data, **kwargs):
28
- temp_compressed = _test_utils.get_temp_compressed_name(test_data)
29
- with open(temp_compressed, 'wb') as out_file:
30
- with open(test_data, 'rb') as in_file:
31
- out_file.write(brotli.compress(in_file.read(), **kwargs))
32
-
33
- def _test_compress(self, test_data, **kwargs):
34
- self._compress(test_data, **kwargs)
35
- self._check_decompression(test_data, **kwargs)
36
-
37
-
38
- _test_utils.generate_test_methods(TestCompress, variants=TestCompress.VARIANTS)
39
-
40
- if __name__ == '__main__':
41
- unittest.main()
@@ -1,94 +0,0 @@
1
- # Copyright 2016 The Brotli Authors. All rights reserved.
2
- #
3
- # Distributed under MIT license.
4
- # See file LICENSE for detail or copy at https://opensource.org/licenses/MIT
5
-
6
- import functools
7
- import unittest
8
-
9
- from . import _test_utils
10
- import brotli
11
-
12
-
13
- # Do not inherit from TestCase here to ensure that test methods
14
- # are not run automatically and instead are run as part of a specific
15
- # configuration below.
16
- class _TestCompressor(object):
17
-
18
- CHUNK_SIZE = 2048
19
-
20
- def tearDown(self):
21
- self.compressor = None
22
-
23
- def _check_decompression(self, test_data):
24
- # Write decompression to temp file and verify it matches the original.
25
- temp_uncompressed = _test_utils.get_temp_uncompressed_name(test_data)
26
- temp_compressed = _test_utils.get_temp_compressed_name(test_data)
27
- original = test_data
28
- with open(temp_uncompressed, 'wb') as out_file:
29
- with open(temp_compressed, 'rb') as in_file:
30
- out_file.write(brotli.decompress(in_file.read()))
31
- self.assertFilesMatch(temp_uncompressed, original)
32
-
33
- def _test_single_process(self, test_data):
34
- # Write single-shot compression to temp file.
35
- temp_compressed = _test_utils.get_temp_compressed_name(test_data)
36
- with open(temp_compressed, 'wb') as out_file:
37
- with open(test_data, 'rb') as in_file:
38
- out_file.write(self.compressor.process(in_file.read()))
39
- out_file.write(self.compressor.finish())
40
- self._check_decompression(test_data)
41
-
42
- def _test_multiple_process(self, test_data):
43
- # Write chunked compression to temp file.
44
- temp_compressed = _test_utils.get_temp_compressed_name(test_data)
45
- with open(temp_compressed, 'wb') as out_file:
46
- with open(test_data, 'rb') as in_file:
47
- read_chunk = functools.partial(in_file.read, self.CHUNK_SIZE)
48
- for data in iter(read_chunk, b''):
49
- out_file.write(self.compressor.process(data))
50
- out_file.write(self.compressor.finish())
51
- self._check_decompression(test_data)
52
-
53
- def _test_multiple_process_and_flush(self, test_data):
54
- # Write chunked and flushed compression to temp file.
55
- temp_compressed = _test_utils.get_temp_compressed_name(test_data)
56
- with open(temp_compressed, 'wb') as out_file:
57
- with open(test_data, 'rb') as in_file:
58
- read_chunk = functools.partial(in_file.read, self.CHUNK_SIZE)
59
- for data in iter(read_chunk, b''):
60
- out_file.write(self.compressor.process(data))
61
- out_file.write(self.compressor.flush())
62
- out_file.write(self.compressor.finish())
63
- self._check_decompression(test_data)
64
-
65
-
66
- _test_utils.generate_test_methods(_TestCompressor)
67
-
68
-
69
- class TestCompressorQuality1(_TestCompressor, _test_utils.TestCase):
70
-
71
- def setUp(self):
72
- self.compressor = brotli.Compressor(quality=1)
73
-
74
-
75
- class TestCompressorQuality6(_TestCompressor, _test_utils.TestCase):
76
-
77
- def setUp(self):
78
- self.compressor = brotli.Compressor(quality=6)
79
-
80
-
81
- class TestCompressorQuality9(_TestCompressor, _test_utils.TestCase):
82
-
83
- def setUp(self):
84
- self.compressor = brotli.Compressor(quality=9)
85
-
86
-
87
- class TestCompressorQuality11(_TestCompressor, _test_utils.TestCase):
88
-
89
- def setUp(self):
90
- self.compressor = brotli.Compressor(quality=11)
91
-
92
-
93
- if __name__ == '__main__':
94
- unittest.main()
@@ -1,42 +0,0 @@
1
- # Copyright 2016 The Brotli Authors. All rights reserved.
2
- #
3
- # Distributed under MIT license.
4
- # See file LICENSE for detail or copy at https://opensource.org/licenses/MIT
5
-
6
- import unittest
7
-
8
- from . import _test_utils
9
- import brotli
10
-
11
-
12
- def _get_original_name(test_data):
13
- return test_data.split('.compressed')[0]
14
-
15
-
16
- class TestDecompress(_test_utils.TestCase):
17
-
18
- def _check_decompression(self, test_data):
19
- # Verify decompression matches the original.
20
- temp_uncompressed = _test_utils.get_temp_uncompressed_name(test_data)
21
- original = _get_original_name(test_data)
22
- self.assertFilesMatch(temp_uncompressed, original)
23
-
24
- def _decompress(self, test_data):
25
- temp_uncompressed = _test_utils.get_temp_uncompressed_name(test_data)
26
- with open(temp_uncompressed, 'wb') as out_file:
27
- with open(test_data, 'rb') as in_file:
28
- out_file.write(brotli.decompress(in_file.read()))
29
-
30
- def _test_decompress(self, test_data):
31
- self._decompress(test_data)
32
- self._check_decompression(test_data)
33
-
34
- def test_garbage_appended(self):
35
- with self.assertRaises(brotli.error):
36
- brotli.decompress(brotli.compress(b'a') + b'a')
37
-
38
-
39
- _test_utils.generate_test_methods(TestDecompress, for_decompression=True)
40
-
41
- if __name__ == '__main__':
42
- unittest.main()
@@ -1,59 +0,0 @@
1
- # Copyright 2016 The Brotli Authors. All rights reserved.
2
- #
3
- # Distributed under MIT license.
4
- # See file LICENSE for detail or copy at https://opensource.org/licenses/MIT
5
-
6
- import functools
7
- import unittest
8
-
9
- from . import _test_utils
10
- import brotli
11
-
12
-
13
- def _get_original_name(test_data):
14
- return test_data.split('.compressed')[0]
15
-
16
-
17
- class TestDecompressor(_test_utils.TestCase):
18
-
19
- CHUNK_SIZE = 1
20
-
21
- def setUp(self):
22
- self.decompressor = brotli.Decompressor()
23
-
24
- def tearDown(self):
25
- self.decompressor = None
26
-
27
- def _check_decompression(self, test_data):
28
- # Verify decompression matches the original.
29
- temp_uncompressed = _test_utils.get_temp_uncompressed_name(test_data)
30
- original = _get_original_name(test_data)
31
- self.assertFilesMatch(temp_uncompressed, original)
32
-
33
- def _decompress(self, test_data):
34
- temp_uncompressed = _test_utils.get_temp_uncompressed_name(test_data)
35
- with open(temp_uncompressed, 'wb') as out_file:
36
- with open(test_data, 'rb') as in_file:
37
- read_chunk = functools.partial(in_file.read, self.CHUNK_SIZE)
38
- for data in iter(read_chunk, b''):
39
- out_file.write(self.decompressor.process(data))
40
- self.assertTrue(self.decompressor.is_finished())
41
-
42
- def _test_decompress(self, test_data):
43
- self._decompress(test_data)
44
- self._check_decompression(test_data)
45
-
46
- def test_garbage_appended(self):
47
- with self.assertRaises(brotli.error):
48
- self.decompressor.process(brotli.compress(b'a') + b'a')
49
-
50
- def test_already_finished(self):
51
- self.decompressor.process(brotli.compress(b'a'))
52
- with self.assertRaises(brotli.error):
53
- self.decompressor.process(b'a')
54
-
55
-
56
- _test_utils.generate_test_methods(TestDecompressor, for_decompression=True)
57
-
58
- if __name__ == '__main__':
59
- unittest.main()
@@ -1,11 +0,0 @@
1
- prefix=@prefix@
2
- exec_prefix=@exec_prefix@
3
- libdir=@libdir@
4
- includedir=@includedir@
5
-
6
- Name: libbrotlicommon
7
- URL: https://github.com/google/brotli
8
- Description: Brotli common dictionary library
9
- Version: @PACKAGE_VERSION@
10
- Libs: -L${libdir} -R${libdir} -lbrotlicommon
11
- Cflags: -I${includedir}