kc3-lang/brotli/python

Branch :


Log

Author Commit Date CI Message
bc32ae12 2023-07-04 13:01:14 add tests with UTF8/UTF16 non-ASCII text PiperOrigin-RevId: 545424981
38e9add9 2023-01-31 21:28:34 Fix permissions PiperOrigin-RevId: 506096478
36533a86 2023-01-16 18:04:35 Internal change PiperOrigin-RevId: 502401179
c8df4b30 2022-12-29 21:07:16 Python: use a new output buffer code (#902) Currently, the output buffer is a std::vector<uint8_t>. When the buffer grows, resizing will cause unnecessary memcpy(). This change uses a list of bytes object to represent output buffer, can avoid the extra overhead of resizing. In addition, C++ code can be removed, it's a pure C extension.
a8f5813b 2022-11-17 13:03:09 Update Documentation: - add note that brotli is a "stream" format, not an archive-like - regenerate .1 with Pandoc Build: - drop legacy "BROTLI_BUILD_PORTABLE" option - drop "BROTLI_SANITIZED" definition Code: - c: comb includes - c/enc: extract encoder state into separate header - c/enc: drop designated q10 codepath - c/enc: dealing better with flushing of empty stream - fix MSVC compilation API: - py: use library version instead of one in version.h - c: add plugable API to report consumed input / produced output - c/java: support "lean" prepared dictionaries (without copy of source)
8376f72e 2021-11-10 10:34:39 Prepare for copybara (#939) Co-authored-by: Eugene Kliuchnikov <eustas@chromium.org>
68f1b90a 2021-08-18 19:15:07 Update (#918) Prepare to use copybara worklow.
7f740f13 2020-05-15 11:06:21 Update (#807) - fix formatting - fix type conversion - fix no-op arithmetic with null-pointer - improve performance of hash_longest_match64 - go: detect read after close - java decoder: support compound dictionary - remove executable flag on non-scripts
c8b37e8f 2019-07-17 14:39:56 Update (#762) * put LICENSE file into .jar * fix typo * add clarification comment in PY wrapper
5805f99a 2018-11-12 04:36:00 Ensure decompression consumes all input (#730) * Ensure decompression consumes all input If not, it's a corrupt stream. * Use byte strings
2c034825 2018-03-23 02:09:00 Fix "memory leak" in python tests (#652) OOMs on RPi (1GB)
a629289e 2017-08-28 11:31:29 Update (#590) * add transpiled JS decoder * make PY wrapper accept memview * fix dictionary generator * speedup compression of RLEish data
4f455cac 2017-08-23 19:45:13 disable buidling/deployment of python wheels (#583) * [appveyor] remove 'deploy' stage; only test python 2.7 and 3.6 all the other python versions are being built and tested on https://github.com/google/brotli-wheels/blob/d571d63/appveyor.yml * remove terrify submodule as not needed any more * [travis] just test py2.7 and 3.6 on linux; remove extra osx python builds All the other python versions for OSX are being built/tested on: https://github.com/google/brotli-wheels/blob/d571d63/.travis.yml Also, there's no need to build and deploy wheels here, as that's done in the separate repository. * [setup.py] only rebuild if dependency are newer; fix typo in list of 'depends' https://github.com/python/cpython/blob/v3.6.2/Lib/distutils/command/build_ext.py#L485-L500 * [ci] only run 'python setup.py test' if we run 'python setup.py built test', the setuptools 'test' command will forcibly re-run the build_ext subcommand because it wants to pass the --inplace option (it ignores whether it's up to date, just re-runs it all the time). with this we go from running built_ext twice, to running it only once per build * [Makefile] run 'build_ext --inplace' instead of 'develop' as default target The 'develop' command is like 'install' in the sense that it modifies the user's python environment. The default make target should be less intrusive, i.e. just building the extension module in-place without modify anything in the user's environment. We don't need to tell make about the dependency between 'test' and 'build' target as that is baked in the `python setup.py test` command. * [Makefile] add 'develop' target; remove unnecessary 'tests' target `make test` is good enough * [Makefile] `setup.py test` requires setuptools; run `python -m unittest` This will work even if setuptools is not installed, which is unlikely nowadays but still our `setup.py` works with plain distutils, so we may well have our tests work without setuptools. * [python/README.md] add ref to 'develop' target; remove 'tests', just 'make test' * [setup.py] import modules as per nicksay's comment https://github.com/google/brotli/pull/583#discussion_r131981049 * [Makefile] add 'develop' to .PHONY targets remove 'tests' from .PHONY * [appveyor] remove unused setup scripts We don't need to install custom python versions, we are using the pre-installed ones on Appveyor. * [appveyor] remove unneeded setup code
019091f9 2017-08-08 04:25:39 Python: Update bro_test to reference script directly (#582)
d63e8f75 2017-08-04 10:02:56 Update API, and more (#581) Update API, and more: * remove "custom dictionary" support * c/encoder: fix #580: big-endian build * Java: reduce jar size * Java: speedup decoding * Java: add 32-bit CPU support * Java: make source code JS transpiler-ready
06082531 2017-08-02 10:59:46 Python: Add a "make install" command and clarify installation docs (#578) Closes #576
52441069 2017-07-21 10:07:24 Update (#574) * Update * decoder: better behavior after failure * encoder: replace "len_x_code" with delta * research: add experimental dictionary generator * python: test combing
1becbbf2 2017-06-30 13:09:50 Update (#569) * add misssing fclose in `brotli.c` * add basic tests for python `Decompressor` type * minor lint fixes in `_brotli.cc`
58f5c37f 2017-06-28 16:32:28 Python: Decompressor: Streaming decompression support (#546) python-brotli has Compressor for streaming compression but nothing for streaming decompression. This is a straight-forward copy of the Compressor code into the new class Decompressor.
6ab0a5ce 2016-12-21 04:17:11 Python: Create Makefile for development shortcuts (#488)
fd96151b 2016-12-20 18:00:51 Move brotlidump.py to research/ (#487)
f62cd2bc 2016-12-20 14:41:47 brotlidump.py: disassemble brotli file (revisited) (#314) * Create brotlidump.py Sorry, I am a newbie. I couldn't find my file anymore when I wanted to edit it. Hope I don't waste your time. * Fixed a bug where it couldn't read its own compression. The problem was that a prefix code ending with a 16 "repeat" didn't realize the table was full already. Also minor bug fixes, comments and stuff. * Major refactoring Rewrote almost everything. Now can dump its own compression. * Now more or less complete Appears to handle all files completely (including metablock data). Used as inspiration for the the hex example (see makehexexample.py)
89a5b6e6 2016-12-20 08:40:47 Python: Simplify test suite generation by using unittest discovery (#485)
6f227228 2016-12-12 04:28:44 Python: Use a temporary directory for generated files in tests (#481)
4651f7c0 2016-12-12 04:28:15 Python: Format bro.py with yapf (#480)
0ee41613 2016-12-12 10:27:13 Update python brotli wrapper (#479) * Update python brotli wrapper * release GIL on CPU intensive blocks, fixes #476 * use BrotliDecoderTakeOutput (less memory, less memcpy) * Python: Convert bro.py tests to unittest style (#478) * Create unittest-style tests for `bro.py` decompression and compression * Delete old tests for `bro.py` * Update test method generation to properly create a Cartesian product of iterables using `itertools.product` * Update python brotli wrapper * release GIL on CPU intensive blocks, fixes #476 * use BrotliDecoderTakeOutput (less memory, less memcpy)
4a60128c 2016-12-09 07:44:05 Python: Convert bro.py tests to unittest style (#478) * Create unittest-style tests for `bro.py` decompression and compression * Delete old tests for `bro.py` * Update test method generation to properly create a Cartesian product of iterables using `itertools.product`
1e5ea6ae 2016-11-09 06:21:13 Python: Add unit tests for brotli.compress and brotli.decompress (#467) Also - rename `test_utils` to `_test_utils` - refactor shared code into `_test_utils`
a260b6ba 2016-10-31 08:24:01 Python: Add tests for streamed compression (#458) Progress on #191
92037654 2016-10-31 07:58:45 Python: Use "build" instead of "build_ext" in scripts (#460) Previously, the Python package consisted of a single extension module, so `build_ext` was sufficient. Now, the package contains a native module and an extension module, so both `build_py` and `build_ext` are required. Instead, run `build`, which calls both `build_py` and `build_ext` automatically.
afb12727 2016-10-25 04:19:29 Python: Publicly expose the Compressor object in the Python API (#456) Progress on #191
5632315d 2016-10-24 07:28:56 Python: Support streamed compression with the Compressor object (#448) This adds `flush` and `finish` methods to the `Compressor` object in the extension module, renames the `compress` method to `process`, and updates that method to only process data. Now, one or more `process` calls followed by a `finish` call will be equivalent to a module-level `compress` call. Note: To maximize the compression efficiency (and match underlying Brotli behavior, the `Compressor` object `process` method does not guarantee all input is immediately written to output. To ensure immediate output, call `flush` to manually flush the compression buffer. Extraneous flushing can increase the size, but may be required when processing streaming data. Progress on #191
2d441179 2016-10-18 10:31:05 Merge pull request #446 from nicksay/py-3-compressor-object Python: Create an extension Compressor object
b04f4ea1 2016-10-17 13:00:14 Python: Update README with information about code formatting Also, add a `yapf` section to `setup.cfg` to ensure YAPF runs format code with the Google style.
595a5246 2016-09-29 15:14:16 Python: Create an extension Compressor object - Create a `Compressor` object in the extension module - Move the `compress` method into the native module and use the new `Compressor` object to do the compression Note: This does not change the module-level Python API. The `Compressor` object will not be publicly exposed until its methods have stabilized.
f7b5b3dc 2016-09-28 17:26:00 Python: Create native brotli module and move extension to _brotli
86fdb683 2016-09-21 16:02:32 Update brotlimodule.cc
7cbdb4aa 2016-09-21 15:51:54 Update brotlimodule.cc
b754f607 2016-09-21 15:37:45 Update python module * use new decoder API
81480011 2016-08-23 14:40:33 Move "public" to "include/brotli"
2c2d5578 2016-08-22 15:44:12 Use version from common/version.h
dae9c7ff 2016-08-22 14:00:42 Fix brotlimodule
27f9d00e 2016-06-23 11:02:53 Fix issue #383
81054a46 2016-06-17 20:24:24 Restore platform suffix
f0c7ece3 2016-06-16 17:45:05 Remove platform suffix
bac060f1 2016-06-16 17:25:26 Fix library path
8872d7b4 2016-06-13 15:22:13 Fix CI build.
3ccbf05d 2016-06-13 11:01:04 Convert encoder to plain C.
55bd78fb 2016-06-03 12:31:02 Fix test file path
ab53fc31 2016-06-03 12:30:45 Fix test file path
db3a1162 2016-06-13 15:22:13 Fix CI build.
b972c677 2016-06-13 11:01:04 Convert encoder to plain C.
b73ebe32 2016-06-03 12:31:02 Fix test file path
66606e7d 2016-06-03 12:30:45 Fix test file path
bb6f5fea 2016-06-03 11:12:12 Merge pull request #336 from anthrotype/upload-sdist appveyor: also upload source distribution packages to Github Releases
75c6c1ab 2016-04-19 16:43:42 Fix brotlimodule
f66c7c54 2016-04-10 20:51:10 python/tests: clean up generated files if successful
7e5bbd5f 2016-02-24 16:54:54 Merge pull request #321 from eustas/master Add custom dictionary feature binding
7d25e6b6 2016-02-24 16:01:35 Truncate dictionary to window size.
cbb0d4cd 2016-02-23 17:45:42 Remove streaming test.
30612e3a 2016-02-23 17:42:55 Add binding for custom_dictionary.
14276922 2016-02-23 16:10:53 Fix typo
7111c339 2016-02-23 16:06:31 Create README.md
291d21cc 2016-02-19 16:54:15 Fix choices for --lgwin and --mode in python/bro.py.
c5c80a9f 2016-01-25 15:13:17 Addressed comment
8e8b8de0 2016-01-25 12:33:38 Update brotlimodule.cc
1b938dc7 2016-01-25 12:16:36 Update brotlimodule.cc
c49918e1 2016-01-25 12:07:39 Update brotlimodule.cc
ca0ae4cb 2016-01-25 11:40:20 Update brotlimodule.cc
a4f40c1b 2016-01-25 11:39:05 Fix brotlimodule compilation warnings
fec00d24 2016-01-23 00:31:47 Make input const
a22993b3 2016-01-22 14:09:25 Fix pointer dereferencing.
1f910642 2016-01-22 14:01:46 Remove deprecated API call
912b0ac2 2015-12-08 12:49:04 brotlimodule.cc: fix error with clang ('expected a class or namespace')
8195a5c9 2015-10-06 19:49:11 [brotlimodule.cc] set 'lgwin' valid range to [10..24]
82ffc4df 2015-10-05 18:57:32 [bro.py] set 'lgwin' valid range to [10..24]
3e67d487 2015-10-05 11:09:11 [brotlimodule.cc] remove C++11 vector::data() call
b5c92e54 2015-10-02 11:32:42 Add tools/version.h that conatins the brotli version. This can be reused by all of the tools. Set the version to the next git release tag.
8c7edd3e 2015-08-11 10:39:14 [bro.py] print --version as brotli.__version__
ac33d356 2015-08-11 10:42:22 [brotlimodule.cc] add __version__ string attribute to brotli module
f1417290 2015-08-10 18:44:06 [brotlimodule.cc] fix RuntimeError on OS X: keyword list must be NULL terminated Sorry, my fault...
08212db7 2015-08-10 14:39:44 [brotlimodule.cc] fix C++11 warning about conversion from string literal to 'char *'
d3dfc689 2015-08-10 14:38:17 [brotlimodule.cc] no longer expose deprecated BrotliParams: enable_dictionary, enable_transforms, greedy_block_split, enable_context_modeling
e356b9bc 2015-05-11 14:12:37 [roundtrip_test.py] repeat test at different quality (1, 6, 9, 11)
c93c0dab 2015-05-11 11:10:48 [bro.py] use brotli.MODE_GENERIC as default compression mode; remove additional low-level parameters
aa6f7d8f 2015-05-11 11:09:36 [brotlimodule] add MODE_GENERIC constant
b7e82917 2015-05-08 15:49:15 [bro.py] remove debug print
4106a406 2015-05-08 15:46:56 [bro.py] use new optional encoder parameters when compressing; modified the help string to include the new parameters.
32c44ec8 2015-05-08 14:17:20 [bro.py] use argparse instead of getopt
3351bb08 2015-05-08 13:02:05 [brotlimodule] apply uniform docstring style
6d935db7 2015-05-08 12:38:22 [brotlimodule] add quality, lgwin and lgblock parameters
dbcb3261 2015-05-08 12:07:10 [brotlimodule] add enable_context_modeling parameter (defaults to True)
4c1d0693 2015-05-08 12:02:08 [brotlimodule] add new keyword params docstring of brotli.compress
6264bea2 2015-05-08 11:47:00 [brotlimodule] add greedy_block_split parameter (defaults to False); renamed variables: transform -> enable_transforms, dictionary -> enable_dictionary
b2eba122 2015-05-08 11:34:20 [brotlimodule] add enable_dictionary parameter (defautls to True)
89c74d68 2015-05-08 11:23:08 [brotlimodule] use keyword arguments for mode and enable_transforms; update brotli.compress docstring accordingly
e6913b2e 2015-05-08 10:06:18 [python] use built-in split instead of 'string' module for py23 In python3, the 'string' module no longer has a 'split' function.
10a2f374 2015-05-07 20:43:01 Handle multiple compressed files per original in the test. Add some more test cases that decompress to the empty file or a one byte long file. These test cases have examples for the updated stream header and meta-block header formats.
cdde52ef 2015-04-22 17:54:56 [python] refactored tests and import shared utilities from module
906f4f52 2015-04-22 16:49:00 [python] prepend build/lib folder to PYTHONPATH before running tests