google / google/array_record

macOS build works! - Next: work on tests?

Abierto
#150 6 comentarios 0 reacciones 0 asignados Ver en GitHub
Lenguaje dominante
C++
Estrellas
142
Forks
26
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

Closes #50 #85 #118 #135

I just tried to build with no edits and… it works!
```sh
array_record % ./oss/build_whl.sh
+ '[' -z ']'
+ '[' -z ']'
++ which python3
+ PYTHON_BIN=.venvs/venv-array-records-3-10/bin/python3
++ .venvs/venv-array-records-3-10/bin/python3 -c 'import sys; print(sys.version_info.major)'
+ PYTHON_MAJOR_VERSION=3
++ .venvs/venv-array-records-3-10/bin/python3 -c 'import sys; print(sys.version_info.minor)'
+ PYTHON_MINOR_VERSION=10
+ PYTHON_VERSION=3.10
+ export PYTHON_VERSION=3.10
+ PYTHON_VERSION=3.10
+ main
+ '[' -e .bazelrc ']'
+ rm .bazelrc
+ write_to_bazelrc 'build -c opt'
+ echo 'build -c opt'
+ write_to_bazelrc 'build --cxxopt=-std=c++17'
+ echo 'build --cxxopt=-std=c++17'
+ write_to_bazelrc 'build --host_cxxopt=-std=c++17'
+ echo 'build --host_cxxopt=-std=c++17'
+ write_to_bazelrc 'build --experimental_repo_remote_exec'
+ echo 'build --experimental_repo_remote_exec'
+ write_to_bazelrc 'build --python_path=".venvs/venv-array-records-3-10/bin/python3"'
+ echo 'build --python_path=".venvs/venv-array-records-3-10/bin/python3"'
+ '[' -n '' ']'
+ export USE_BAZEL_VERSION=
+ USE_BAZEL_VERSION=
+ bazel clean
INFO: Starting clean (this may take a while). Use --async if the clean takes more than several minutes.
+ bazel build ...
INFO: Analyzed 28 targets (179 packages loaded, 7060 targets configured).
INFO: From Linking external/highwayhash+/libinstruction_sets.a:
warning: /Library/Developer/CommandLineTools/usr/bin/libtool: archive library: bazel-out/darwin_arm64-opt/bin/external/highwayhash+/libinstruction_sets.a the table of contents is empty (no object file members in the library define global symbols)
INFO: From Linking external/riegeli+/riegeli/base/librecycling_pool.a:
warning: /Library/Developer/CommandLineTools/usr/bin/libtool: archive library: bazel-out/darwin_arm64-opt/bin/external/riegeli+/riegeli/base/librecycling_pool.a the table of contents is empty (no object file members in the library define global symbols)
INFO: From Linking external/riegeli+/riegeli/chunk_encoding/libfield_projection.a:
warning: /Library/Developer/CommandLineTools/usr/bin/libtool: archive library: bazel-out/darwin_arm64-opt/bin/external/riegeli+/riegeli/chunk_encoding/libfield_projection.a the table of contents is empty (no object file members in the library define global symbols)
INFO: From Linking external/protobuf+/src/google/protobuf/io/libio_win32.a [for tool]:
warning: /Library/Developer/CommandLineTools/usr/bin/libtool: archive library: bazel-out/darwin_arm64-opt-exec-ST-d57f47055a04/bin/external/protobuf+/src/google/protobuf/io/libio_win32.a the table of contents is empty (no object file members in the library define global symbols)
INFO: From Linking external/protobuf+/src/google/protobuf/io/libio_win32.a:
warning: /Library/Developer/CommandLineTools/usr/bin/libtool: archive library: bazel-out/darwin_arm64-opt/bin/external/protobuf+/src/google/protobuf/io/libio_win32.a the table of contents is empty (no object file members in the library define global symbols)
INFO: From Compiling riegeli/chunk_encoding/transpose_encoder.cc:
external/riegeli+/riegeli/chunk_encoding/transpose_encoder.cc:139:15: warning: unused function 'operator==' [-Wunused-function]
139 | friend bool operator==(const PriorityQueueEntry& a,
| ^~~~~~~~
1 warning generated.
INFO: From Linking external/protobuf+/protoc [for tool]:
ld: warning: ignoring duplicate libraries: '-lm', '-lpthread'
INFO: From Compiling cpp/array_record_reader.cc:
cpp/array_record_reader.cc:719:58: warning: lambda capture 'buffer_to_add' is not used [-Wunused-lambda-capture]
719 | auto task = [reader, decoder_promise, chunk_offsets, buffer_to_add,
| ~~^~~~~~~~~~~~~
1 warning generated.
INFO: From Linking cpp/array_record_reader_test:
ld: warning: ignoring duplicate libraries: '-lm', '-lpthread'
INFO: From Linking python/array_record_module.so:
ld: warning: ignoring duplicate libraries: '-lm', '-lpthread'
INFO: From Linking cpp/sequenced_chunk_writer_test:
ld: warning: ignoring duplicate libraries: '-lm', '-lpthread'
INFO: From Linking cpp/array_record_writer_test:
ld: warning: ignoring duplicate libraries: '-lm', '-lpthread'
INFO: Found 28 targets...
INFO: Elapsed time: 80.688s, Critical Path: 17.80s
INFO: 2042 processes: 956 internal, 1086 darwin-sandbox.
INFO: Build completed successfully, 2042 total actions
+ bazel test --verbose_failures --test_output=errors ...
INFO: Analyzed 28 targets (1 packages loaded, 2175 targets configured).
INFO: Found 18 targets and 10 test targets...
INFO: Elapsed time: 3.040s, Critical Path: 2.44s
INFO: 17 processes: 30 action cache hit, 15 darwin-sandbox, 2 local.
INFO: Build completed successfully, 17 total actions
//:requirements_test PASSED in 2.4s
//cpp:masked_reader_test PASSED in 0.2s
//cpp:parallel_for_test PASSED in 0.7s
//cpp:sequenced_chunk_writer_test PASSED in 0.4s
//cpp:test_utils_test PASSED in 0.7s
//cpp:tri_state_ptr_test PASSED in 1.0s
//python:array_record_data_source_test PASSED in 0.8s
//python:array_record_module_test PASSED in 0.8s
//cpp:array_record_reader_test PASSED in 0.5s
Stats over 4 runs: max = 0.5s, min = 0.5s, avg = 0.5s, dev = 0.0s
//cpp:array_record_writer_test PASSED in 0.9s
Stats over 4 runs: max = 0.9s, min = 0.7s, avg = 0.9s, dev = 0.1s

Executed 10 out of 10 tests: 10 tests pass.
There were tests whose specified size is too big. Use the --test_verbose_timeout_warnings command line option to see which ones these are.
+ DEST=/tmp/array_record/all_dist
+ mkdir -p /tmp/array_record/all_dist
+ echo '=== destination directory: /tmp/array_record/all_dist'
=== destination directory: /tmp/array_record/all_dist
++ mktemp -d -t tmp.XXXXXXXXXX
+ TMPDIR=/var/folders/w5/21g61wls7ksd3z8cxrj41s1c0000gn/T/tmp.XXXXXXXXXX.YZGIenaGSx
++ date
+ echo Wed Mar 26 20:41:14 MDT 2025 : '=== Using tmpdir: /var/folders/w5/21g61wls7ksd3z8cxrj41s1c0000gn/T/tmp.XXXXXXXXXX.YZGIenaGSx'
Wed Mar 26 20:41:14 MDT 2025 : === Using tmpdir: /var/folders/w5/21g61wls7ksd3z8cxrj41s1c0000gn/T/tmp.XXXXXXXXXX.YZGIenaGSx
+ mkdir /var/folders/w5/21g61wls7ksd3z8cxrj41s1c0000gn/T/tmp.XXXXXXXXXX.YZGIenaGSx/array_record
++ date
+ echo Wed Mar 26 20:41:14 MDT 2025 : '=== Copy array_record files'
Wed Mar 26 20:41:14 MDT 2025 : === Copy array_record files
+ cp setup.py /var/folders/w5/21g61wls7ksd3z8cxrj41s1c0000gn/T/tmp.XXXXXXXXXX.YZGIenaGSx
+ cp LICENSE /var/folders/w5/21g61wls7ksd3z8cxrj41s1c0000gn/T/tmp.XXXXXXXXXX.YZGIenaGSx
+ rsync -avm -L '--exclude=bazel-*/' . /var/folders/w5/21g61wls7ksd3z8cxrj41s1c0000gn/T/tmp.XXXXXXXXXX.YZGIenaGSx/array_record
building file list ... done
./
.bazelrc
BUILD
CONTRIBUTING.md
LICENSE
MODULE.bazel
MODULE.bazel.lock
README.md
__init__.py
requirements.in
requirements_lock.txt
setup.py
.git/
.git/HEAD
.git/config
.git/description
.git/index
.git/packed-refs
.git/shallow
.git/hooks/
.git/hooks/applypatch-msg.sample
.git/hooks/commit-msg.sample
.git/hooks/fsmonitor-watchman.sample
.git/hooks/post-update.sample
.git/hooks/pre-applypatch.sample
.git/hooks/pre-commit.sample
.git/hooks/pre-merge-commit.sample
.git/hooks/pre-push.sample
.git/hooks/pre-rebase.sample
.git/hooks/pre-receive.sample
.git/hooks/prepare-commit-msg.sample
.git/hooks/push-to-checkout.sample
.git/hooks/sendemail-validate.sample
.git/hooks/update.sample
.git/info/
.git/info/exclude
.git/logs/
.git/logs/HEAD
.git/logs/refs/
.git/logs/refs/heads/
.git/logs/refs/heads/main
.git/logs/refs/remotes/
.git/logs/refs/remotes/origin/
.git/logs/refs/remotes/origin/HEAD
.git/objects/
.git/objects/pack/
.git/objects/pack/pack-ec6c827d388c4ddef1a483aef4f1e526e568fc32.idx
.git/objects/pack/pack-ec6c827d388c4ddef1a483aef4f1e526e568fc32.pack
.git/objects/pack/pack-ec6c827d388c4ddef1a483aef4f1e526e568fc32.rev
.git/refs/
.git/refs/heads/
.git/refs/heads/main
.git/refs/remotes/
.git/refs/remotes/origin/
.git/refs/remotes/origin/HEAD
.github/
.github/workflows/
.github/workflows/python-tests.yml
.idea/
.idea/.gitignore
.idea/array_record.iml
.idea/misc.xml
.idea/modules.xml
.idea/vcs.xml
.idea/workspace.xml
.idea/inspectionProfiles/
.idea/inspectionProfiles/Project_Default.xml
.idea/inspectionProfiles/profiles_settings.xml
.pytest_cache/
.pytest_cache/.gitignore
.pytest_cache/CACHEDIR.TAG
.pytest_cache/README.md
.pytest_cache/v/
.pytest_cache/v/cache/
.pytest_cache/v/cache/lastfailed
.pytest_cache/v/cache/nodeids
.pytest_cache/v/cache/stepwise
beam/
beam/README.md
beam/__init__.py
beam/arrayrecordio.py
beam/demo.py
beam/dofns.py
beam/example.py
beam/options.py
beam/pipelines.py
beam/testdata.py
beam/examples/
beam/examples/example_full_demo_cli.sh
beam/examples/example_gcs_conversion.py
beam/examples/example_sink_conversion.py
beam/examples/requirements.txt
cpp/
cpp/BUILD
cpp/array_record_reader.cc
cpp/array_record_reader.h
cpp/array_record_reader_test.cc
cpp/array_record_writer.cc
cpp/array_record_writer.h
cpp/array_record_writer_test.cc
cpp/common.h
cpp/layout.proto
cpp/masked_reader.cc
cpp/masked_reader.h
cpp/masked_reader_test.cc
cpp/parallel_for.h
cpp/parallel_for_test.cc
cpp/sequenced_chunk_writer.cc
cpp/sequenced_chunk_writer.h
cpp/sequenced_chunk_writer_test.cc
cpp/test_utils.cc
cpp/test_utils.h
cpp/test_utils_test.cc
cpp/thread_pool.cc
cpp/thread_pool.h
cpp/tri_state_ptr.h
cpp/tri_state_ptr_test.cc
oss/
oss/README.md
oss/build.Dockerfile
oss/build_whl.sh
oss/runner_common.sh
python/
python/BUILD
python/__init__.py
python/array_record_data_source.py
python/array_record_data_source_test.py
python/array_record_module.cc
python/array_record_module_test.py
python/__pycache__/
python/__pycache__/__init__.cpython-312.pyc
python/__pycache__/array_record_module_test.cpython-312.pyc
python/testdata/
python/testdata/BUILD
python/testdata/digits.array_record-00000-of-00002
python/testdata/digits.array_record-00001-of-00002

sent 751,863 bytes received 2,136 bytes 1,507,998.00 bytes/sec
total size is 743,182 speedup is 0.99
+ rsync -avm -L '--include=*.so' '--include=*_pb2.py' '--exclude=*.runfiles' '--exclude=*_obj' '--include=*/' '--exclude=*' bazel-bin/cpp /var/folders/w5/21g61wls7ksd3z8cxrj41s1c0000gn/T/tmp.XXXXXXXXXX.YZGIenaGSx/array_record
building file list ... done

sent 536 bytes received 12 bytes 1,096.00 bytes/sec
total size is 0 speedup is 0.00
+ rsync -avm -L '--include=*.so' '--include=*_pb2.py' '--exclude=*.runfiles' '--exclude=*_obj' '--include=*/' '--exclude=*' bazel-bin/python /var/folders/w5/21g61wls7ksd3z8cxrj41s1c0000gn/T/tmp.XXXXXXXXXX.YZGIenaGSx/array_record
building file list ... done
python/
python/array_record_module.so

sent 5,562,925 bytes received 38 bytes 11,125,926.00 bytes/sec
total size is 5,561,352 speedup is 1.00
+ pushd /var/folders/w5/21g61wls7ksd3z8cxrj41s1c0000gn/T/tmp.XXXXXXXXXX.YZGIenaGSx
/var/folders/w5/21g61wls7ksd3z8cxrj41s1c0000gn/T/tmp.XXXXXXXXXX.YZGIenaGSx /array_record
++ date
+ echo Wed Mar 26 20:41:14 MDT 2025 : '=== Building wheel'
Wed Mar 26 20:41:14 MDT 2025 : === Building wheel
+ .venvs/venv-array-records-3-10/bin/python3 setup.py bdist_wheel --python-tag py310
running bdist_wheel
running build
running build_py
creating build/lib.macosx-15-arm64-cpython-310/array_record
copying array_record/__init__.py -> build/lib.macosx-15-arm64-cpython-310/array_record
copying array_record/setup.py -> build/lib.macosx-15-arm64-cpython-310/array_record
creating build/lib.macosx-15-arm64-cpython-310/array_record/python
copying array_record/python/array_record_data_source_test.py -> build/lib.macosx-15-arm64-cpython-310/array_record/python
copying array_record/python/array_record_module_test.py -> build/lib.macosx-15-arm64-cpython-310/array_record/python
copying array_record/python/__init__.py -> build/lib.macosx-15-arm64-cpython-310/array_record/python
copying array_record/python/array_record_data_source.py -> build/lib.macosx-15-arm64-cpython-310/array_record/python
creating build/lib.macosx-15-arm64-cpython-310/array_record/beam
copying array_record/beam/options.py -> build/lib.macosx-15-arm64-cpython-310/array_record/beam
copying array_record/beam/arrayrecordio.py -> build/lib.macosx-15-arm64-cpython-310/array_record/beam
copying array_record/beam/__init__.py -> build/lib.macosx-15-arm64-cpython-310/array_record/beam
copying array_record/beam/testdata.py -> build/lib.macosx-15-arm64-cpython-310/array_record/beam
copying array_record/beam/example.py -> build/lib.macosx-15-arm64-cpython-310/array_record/beam
copying array_record/beam/dofns.py -> build/lib.macosx-15-arm64-cpython-310/array_record/beam
copying array_record/beam/demo.py -> build/lib.macosx-15-arm64-cpython-310/array_record/beam
copying array_record/beam/pipelines.py -> build/lib.macosx-15-arm64-cpython-310/array_record/beam
running egg_info
creating array_record.egg-info
writing array_record.egg-info/PKG-INFO
writing dependency_links to array_record.egg-info/dependency_links.txt
writing requirements to array_record.egg-info/requires.txt
writing top-level names to array_record.egg-info/top_level.txt
writing manifest file 'array_record.egg-info/SOURCES.txt'
reading manifest file 'array_record.egg-info/SOURCES.txt'
adding license file 'LICENSE'
writing manifest file 'array_record.egg-info/SOURCES.txt'
copying array_record/python/array_record_module.so -> build/lib.macosx-15-arm64-cpython-310/array_record/python
running build_ext
.venvs/venv-array-records-3-10/lib/python3.10/site-packages/setuptools/_distutils/cmd.py:90: SetuptoolsDeprecationWarning: setup.py install is deprecated.
!!

********************************************************************************
Please avoid running ``setup.py`` directly.
Instead, use pypa/build, pypa/installer or other
standards-based tools.

See https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html for details.
********************************************************************************

!!
self.initialize_options()
installing to build/bdist.macosx-15-arm64/wheel
running install
running install_lib
creating build/bdist.macosx-15-arm64/wheel
creating build/bdist.macosx-15-arm64/wheel/array_record
creating build/bdist.macosx-15-arm64/wheel/array_record/python
copying build/lib.macosx-15-arm64-cpython-310/array_record/python/array_record_data_source_test.py -> build/bdist.macosx-15-arm64/wheel/./array_record/python
copying build/lib.macosx-15-arm64-cpython-310/array_record/python/array_record_module_test.py -> build/bdist.macosx-15-arm64/wheel/./array_record/python
copying build/lib.macosx-15-arm64-cpython-310/array_record/python/__init__.py -> build/bdist.macosx-15-arm64/wheel/./array_record/python
copying build/lib.macosx-15-arm64-cpython-310/array_record/python/array_record_data_source.py -> build/bdist.macosx-15-arm64/wheel/./array_record/python
copying build/lib.macosx-15-arm64-cpython-310/array_record/python/array_record_module.so -> build/bdist.macosx-15-arm64/wheel/./array_record/python
copying build/lib.macosx-15-arm64-cpython-310/array_record/__init__.py -> build/bdist.macosx-15-arm64/wheel/./array_record
copying build/lib.macosx-15-arm64-cpython-310/array_record/setup.py -> build/bdist.macosx-15-arm64/wheel/./array_record
creating build/bdist.macosx-15-arm64/wheel/array_record/beam
copying build/lib.macosx-15-arm64-cpython-310/array_record/beam/options.py -> build/bdist.macosx-15-arm64/wheel/./array_record/beam
copying build/lib.macosx-15-arm64-cpython-310/array_record/beam/arrayrecordio.py -> build/bdist.macosx-15-arm64/wheel/./array_record/beam
copying build/lib.macosx-15-arm64-cpython-310/array_record/beam/__init__.py -> build/bdist.macosx-15-arm64/wheel/./array_record/beam
copying build/lib.macosx-15-arm64-cpython-310/array_record/beam/testdata.py -> build/bdist.macosx-15-arm64/wheel/./array_record/beam
copying build/lib.macosx-15-arm64-cpython-310/array_record/beam/example.py -> build/bdist.macosx-15-arm64/wheel/./array_record/beam
copying build/lib.macosx-15-arm64-cpython-310/array_record/beam/dofns.py -> build/bdist.macosx-15-arm64/wheel/./array_record/beam
copying build/lib.macosx-15-arm64-cpython-310/array_record/beam/demo.py -> build/bdist.macosx-15-arm64/wheel/./array_record/beam
copying build/lib.macosx-15-arm64-cpython-310/array_record/beam/pipelines.py -> build/bdist.macosx-15-arm64/wheel/./array_record/beam
running install_egg_info
Copying array_record.egg-info to build/bdist.macosx-15-arm64/wheel/./array_record-0.6.0-py3.10.egg-info
running install_scripts
creating build/bdist.macosx-15-arm64/wheel/array_record-0.6.0.dist-info/WHEEL
creating 'dist/array_record-0.6.0-cp310-cp310-macosx_15_0_arm64.whl' and adding 'build/bdist.macosx-15-arm64/wheel' to it
adding 'array_record/__init__.py'
adding 'array_record/setup.py'
adding 'array_record/beam/__init__.py'
adding 'array_record/beam/arrayrecordio.py'
adding 'array_record/beam/demo.py'
adding 'array_record/beam/dofns.py'
adding 'array_record/beam/example.py'
adding 'array_record/beam/options.py'
adding 'array_record/beam/pipelines.py'
adding 'array_record/beam/testdata.py'
adding 'array_record/python/__init__.py'
adding 'array_record/python/array_record_data_source.py'
adding 'array_record/python/array_record_data_source_test.py'
adding 'array_record/python/array_record_module.so'
adding 'array_record/python/array_record_module_test.py'
adding 'array_record-0.6.0.dist-info/licenses/LICENSE'
adding 'array_record-0.6.0.dist-info/METADATA'
adding 'array_record-0.6.0.dist-info/WHEEL'
adding 'array_record-0.6.0.dist-info/top_level.txt'
adding 'array_record-0.6.0.dist-info/RECORD'
removing build/bdist.macosx-15-arm64/wheel
+ '[' -n '' ']'
++ date
+ echo Wed Mar 26 20:41:15 MDT 2025 : '=== Listing wheel'
Wed Mar 26 20:41:15 MDT 2025 : === Listing wheel
+ ls -lrt dist/array_record-0.6.0-cp310-cp310-macosx_15_0_arm64.whl
-rw-r--r-- 1 samuel staff 1979105 Mar 26 20:41 dist/array_record-0.6.0-cp310-cp310-macosx_15_0_arm64.whl
+ cp dist/array_record-0.6.0-cp310-cp310-macosx_15_0_arm64.whl /tmp/array_record/all_dist
+ popd
/array_record
++ date
+ echo Wed Mar 26 20:41:15 MDT 2025 : '=== Output wheel file is in: /tmp/array_record/all_dist'
Wed Mar 26 20:41:15 MDT 2025 : === Output wheel file is in: /tmp/array_record/all_dist
(venv-array-records-3-10) array_record % ls /tmp/array_record/all_dist
array_record-0.6.0-cp310-cp310-macosx_15_0_arm64.whl
array_record-0.6.0-cp312-cp312-macosx_15_0_arm64.whl
array_record-0.6.0-cp313-cp313-macosx_15_0_arm64.whl
(venv-array-records-3-10) array_record % python3 -m pip install /tmp/array_record/all_dist/array_record-0.6.0-cp310-cp310-macosx_15_0_arm64.whl
Processing /tmp/array_record/all_dist/array_record-0.6.0-cp310-cp310-macosx_15_0_arm64.whl
Collecting absl-py (from array-record==0.6.0)
Using cached absl_py-2.2.1-py3-none-any.whl.metadata (2.4 kB)
Collecting etils[epath] (from array-record==0.6.0)
Using cached etils-1.12.2-py3-none-any.whl.metadata (6.5 kB)
Collecting fsspec (from etils[epath]->array-record==0.6.0)
Using cached fsspec-2025.3.0-py3-none-any.whl.metadata (11 kB)
Collecting importlib_resources (from etils[epath]->array-record==0.6.0)
Using cached importlib_resources-6.5.2-py3-none-any.whl.metadata (3.9 kB)
Collecting typing_extensions (from etils[epath]->array-record==0.6.0)
Using cached typing_extensions-4.13.0-py3-none-any.whl.metadata (3.0 kB)
Collecting zipp (from etils[epath]->array-record==0.6.0)
Using cached zipp-3.21.0-py3-none-any.whl.metadata (3.7 kB)
Using cached absl_py-2.2.1-py3-none-any.whl (277 kB)
Using cached etils-1.12.2-py3-none-any.whl (167 kB)
Using cached fsspec-2025.3.0-py3-none-any.whl (193 kB)
Using cached importlib_resources-6.5.2-py3-none-any.whl (37 kB)
Using cached typing_extensions-4.13.0-py3-none-any.whl (45 kB)
Using cached zipp-3.21.0-py3-none-any.whl (9.6 kB)
Installing collected packages: zipp, typing_extensions, importlib_resources, fsspec, etils, absl-py, array-record
Successfully installed absl-py-2.2.1 array-record-0.6.0 etils-1.12.2 fsspec-2025.3.0 importlib_resources-6.5.2 typing_extensions-4.13.0 zipp-3.21.0
```

Tests don't work:
```
============================= test session starts ==============================
[…]
ModuleNotFoundError: No module named 'jaraco'
[…]
ModuleNotFoundError: No module named 'pybind11_tests'
[…]
expected version 'None' is different than returned '3.10'
[…]
INTERNALERROR> SystemExit: 1
mainloop: caught unexpected SystemExit!

======================== 2 warnings, 92 errors in 3.78s ========================
```

But can work on that next. Anyway great to see the Python wheels building without error.

EDIT: WiP test work, would like to know if I'm on the right track:
```patch
diff --git a/python/array_record_data_source.py b/python/array_record_data_source.py
index 4a6aed3..597fab4 100644
--- a/python/array_record_data_source.py
+++ b/python/array_record_data_source.py
@@ -39,6 +39,7 @@ import itertools
import os
import pathlib
import re
+import sys
import typing
from typing import Any, Callable, Iterator, List, Mapping, Protocol, Sequence, SupportsIndex, Tuple, TypeVar, Union

@@ -46,6 +47,8 @@ from absl import flags
from absl import logging
from etils import epath

+sys.path.insert(0, os.path.abspath(os.path.dirname(os.path.dirname(__file__))))
+
from python import array_record_module

# TODO(jolesiak): Decide what to do with these flags, e.g., remove them (could
diff --git a/requirements-test.txt b/requirements-test.txt
index e69de29..d62d6e1 100644
--- a/requirements-test.txt
+++ b/requirements-test.txt
@@ -0,0 +1,4 @@
+pytest
+jaraco.context
+jaraco.functools
+jaraco.test
```

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.