This is an automated email from the ASF dual-hosted git repository.
westonpace pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow-cookbook.git
The following commit(s) were added to refs/heads/main by this push:
new 83356fd [C++] Small fixes for c++ (#150)
83356fd is described below
commit 83356fd513366688861591cf0d08e729c6e2b280
Author: Will Jones <[email protected]>
AuthorDate: Tue Feb 22 19:24:23 2022 -0800
[C++] Small fixes for c++ (#150)
* Small fixes for c++
* Edits to contributing
* Upgrade to conda-lock
* Specify python in environment
* Fix instructions
---
.github/workflows/test_cpp_cookbook.yml | 7 +-
cpp/CONTRIBUTING.md | 18 ++++-
cpp/code/datasets.cc | 2 +-
cpp/code/flight.cc | 12 +--
cpp/conda-linux-64.lock | 129 ++++++++++++++++++++++++++++++++
cpp/conda-linux-aarch64.lock | 128 +++++++++++++++++++++++++++++++
cpp/conda-osx-arm64.lock | 125 +++++++++++++++++++++++++++++++
cpp/environment.yml | 125 ++-----------------------------
8 files changed, 415 insertions(+), 131 deletions(-)
diff --git a/.github/workflows/test_cpp_cookbook.yml
b/.github/workflows/test_cpp_cookbook.yml
index 39b790e..a279cb3 100644
--- a/.github/workflows/test_cpp_cookbook.yml
+++ b/.github/workflows/test_cpp_cookbook.yml
@@ -41,19 +41,18 @@ jobs:
- name: Cache conda
uses: actions/cache@v2
env:
- # Increase this value to reset cache if cpp/environment.yml has not
changed
+ # Increase this value to reset cache if cpp/conda-linux-64.lock has
not changed
CACHE_NUMBER: 0
with:
path: ~/conda_pkgs_dir
key:
- ${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-${{
hashFiles('cpp/environment.yml') }}
+ ${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-${{
hashFiles('cpp/conda-linux-64.lock') }}
- name: Setup environment
uses: conda-incubator/setup-miniconda@v2
with:
auto-update-conda: true
- python-version: 3.9
activate-environment: cookbook-cpp
- environment-file: cpp/environment.yml
+ environment-file: cpp/conda-linux-64.lock
auto-activate-base: false
- name: Test
run:
diff --git a/cpp/CONTRIBUTING.md b/cpp/CONTRIBUTING.md
index 7080b87..5336424 100644
--- a/cpp/CONTRIBUTING.md
+++ b/cpp/CONTRIBUTING.md
@@ -37,7 +37,7 @@ a custom `recipe` directive that can be used like so:
:dedent: 4
```
-Each `recipe` directive has two requried arguments. The first is
+Each `recipe` directive has two required arguments. The first is
a path to the file containing the source file containing the snippet
and the second is the name of the snippet and must correspond to a
set of CreateRecipe/EndRecipe calls in the source file.
@@ -120,7 +120,21 @@ If you are using conda then there is file
`cpp/requirements.yml` which can be
used to create an environment for recipe development with the command:
```
-conda env create -n cookbook-cpp --file cpp/requirements.yml
+conda env create -f cpp/environment.yml
+```
+
+There may be a conda-lock file available for your platform. Use this instead to
+avoid having to perform the dependency resolution solve.
+
+```
+conda create -n cookbook-cpp --file cpp/conda-osx-arm64.lock
+```
+
+To update dependencies modify `cpp/requirements.yml` and then run
+
+```
+cd cpp
+conda-lock --file environment.yml --kind explicit -p linux-aarch64 -p linux-64
-p osx-arm64
```
# Development Philosophy
diff --git a/cpp/code/datasets.cc b/cpp/code/datasets.cc
index 17e8c7a..05aff7c 100644
--- a/cpp/code/datasets.cc
+++ b/cpp/code/datasets.cc
@@ -32,7 +32,6 @@ class DatasetReadingTest : public ::testing::Test {
std::shared_ptr<arrow::dataset::ScannerBuilder> scanner_builder =
arrow::dataset::ScannerBuilder::FromRecordBatchReader(std::move(table_reader));
ASSERT_OK(scanner_builder->UseThreads(true));
- ASSERT_OK(scanner_builder->UseAsync(true));
ASSERT_OK_AND_ASSIGN(std::shared_ptr<arrow::dataset::Scanner> scanner,
scanner_builder->Finish());
@@ -47,6 +46,7 @@ class DatasetReadingTest : public ::testing::Test {
std::make_shared<arrow::dataset::ParquetFileFormat>();
arrow::dataset::FileSystemDatasetWriteOptions write_options;
+ write_options.existing_data_behavior =
arrow::dataset::ExistingDataBehavior::kDeleteMatchingPartitions;
write_options.filesystem = std::move(fs);
write_options.partitioning = std::move(partitioning);
write_options.base_dir = airquality_partitioned_dir_;
diff --git a/cpp/code/flight.cc b/cpp/code/flight.cc
index a702184..52dfef9 100644
--- a/cpp/code/flight.cc
+++ b/cpp/code/flight.cc
@@ -45,7 +45,7 @@ class ParquetStorageService : public
arrow::flight::FlightServerBase {
arrow::Status ListFlights(const arrow::flight::ServerCallContext&,
const arrow::flight::Criteria*,
- std::unique_ptr<arrow::flight::FlightListing>*
listings) {
+ std::unique_ptr<arrow::flight::FlightListing>*
listings) override {
arrow::fs::FileSelector selector;
selector.base_dir = "/";
ARROW_ASSIGN_OR_RAISE(auto listing, root_->GetFileInfo(selector));
@@ -64,7 +64,7 @@ class ParquetStorageService : public
arrow::flight::FlightServerBase {
arrow::Status GetFlightInfo(const arrow::flight::ServerCallContext&,
const arrow::flight::FlightDescriptor&
descriptor,
- std::unique_ptr<arrow::flight::FlightInfo>*
info) {
+ std::unique_ptr<arrow::flight::FlightInfo>*
info) override {
ARROW_ASSIGN_OR_RAISE(auto file_info, FileInfoFromDescriptor(descriptor));
ARROW_ASSIGN_OR_RAISE(auto flight_info, MakeFlightInfo(file_info));
*info = std::unique_ptr<arrow::flight::FlightInfo>(
@@ -74,7 +74,7 @@ class ParquetStorageService : public
arrow::flight::FlightServerBase {
arrow::Status DoPut(const arrow::flight::ServerCallContext&,
std::unique_ptr<arrow::flight::FlightMessageReader>
reader,
- std::unique_ptr<arrow::flight::FlightMetadataWriter>) {
+ std::unique_ptr<arrow::flight::FlightMetadataWriter>)
override {
ARROW_ASSIGN_OR_RAISE(auto file_info,
FileInfoFromDescriptor(reader->descriptor()));
ARROW_ASSIGN_OR_RAISE(auto sink,
root_->OpenOutputStream(file_info.path()));
std::shared_ptr<arrow::Table> table;
@@ -87,7 +87,7 @@ class ParquetStorageService : public
arrow::flight::FlightServerBase {
arrow::Status DoGet(const arrow::flight::ServerCallContext&,
const arrow::flight::Ticket& request,
- std::unique_ptr<arrow::flight::FlightDataStream>*
stream) {
+ std::unique_ptr<arrow::flight::FlightDataStream>*
stream) override {
ARROW_ASSIGN_OR_RAISE(auto input, root_->OpenInputFile(request.ticket));
std::unique_ptr<parquet::arrow::FileReader> reader;
ARROW_RETURN_NOT_OK(parquet::arrow::OpenFile(std::move(input),
@@ -119,7 +119,7 @@ class ParquetStorageService : public
arrow::flight::FlightServerBase {
arrow::Status DoAction(const arrow::flight::ServerCallContext&,
const arrow::flight::Action& action,
- std::unique_ptr<arrow::flight::ResultStream>* result)
{
+ std::unique_ptr<arrow::flight::ResultStream>* result)
override {
if (action.type == kActionDropDataset.type) {
*result = std::unique_ptr<arrow::flight::ResultStream>(
new arrow::flight::SimpleResultStream({}));
@@ -255,7 +255,7 @@ arrow::Status TestPutGetDelete() {
std::shared_ptr<arrow::Table> table;
ARROW_RETURN_NOT_OK(stream->ReadAll(&table));
arrow::PrettyPrintOptions print_options(/*indent=*/0, /*window=*/2);
- arrow::PrettyPrint(*table, print_options, &rout);
+ ARROW_RETURN_NOT_OK(arrow::PrettyPrint(*table, print_options, &rout));
EndRecipe("ParquetStorageService::DoGet");
StartRecipe("ParquetStorageService::DoAction");
diff --git a/cpp/conda-linux-64.lock b/cpp/conda-linux-64.lock
new file mode 100644
index 0000000..002129e
--- /dev/null
+++ b/cpp/conda-linux-64.lock
@@ -0,0 +1,129 @@
+# Generated by conda-lock.
+# platform: linux-64
+# input_hash: 55c56b4ebbc5dd9b4cba1e832f00a159d9839ca31c100704c4d58ef54bea2479
+@EXPLICIT
+https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2#d7c89558ba9fa0495403155b64376d81
+https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2021.10.8-ha878542_0.tar.bz2#575611b8a84f45960e87722eeb51fa26
+https://conda.anaconda.org/conda-forge/noarch/kernel-headers_linux-64-2.6.32-he073ed8_15.tar.bz2#5dd5127afd710f91f6a75821bac0a4f0
+https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.36.1-hea4e1c9_2.tar.bz2#bd4f2e711b39af170e7ff15163fe87ee
+https://conda.anaconda.org/conda-forge/linux-64/libgcc-devel_linux-64-9.4.0-hd854feb_12.tar.bz2#8b51f462cec80cc9e47e28fd97cc83af
+https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-11.2.0-h5c6108e_12.tar.bz2#f547bf125ab234cec9c89491b262fc2f
+https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-devel_linux-64-9.4.0-hd854feb_12.tar.bz2#a8a1259e65e005afc1bfd1a8f0b50ae0
+https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-11.2.0-he4da1e4_12.tar.bz2#7ff3b832ba5e6918c0d026976359d065
+https://conda.anaconda.org/conda-forge/noarch/tzdata-2021e-he74cb21_0.tar.bz2#a751ec502589ebdc2eceb183ff602569
+https://conda.anaconda.org/conda-forge/linux-64/libgfortran-ng-11.2.0-h69a702a_12.tar.bz2#33c165be455015cc74e8d857182f3f58
+https://conda.anaconda.org/conda-forge/linux-64/libgomp-11.2.0-h1d223b6_12.tar.bz2#763c5ec8116d984b4a33342236d7da36
+https://conda.anaconda.org/conda-forge/noarch/sysroot_linux-64-2.12-he073ed8_15.tar.bz2#66c192522eacf5bb763568b4e415d133
+https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-1_gnu.tar.bz2#561e277319a41d4f24f5c05a9ef63c04
+https://conda.anaconda.org/conda-forge/linux-64/binutils_impl_linux-64-2.36.1-h193b22a_2.tar.bz2#32aae4265554a47ea77f7c09f86aeb3b
+https://conda.anaconda.org/conda-forge/linux-64/binutils-2.36.1-hdd6e379_2.tar.bz2#3111f86041b5b6863545ca49130cca95
+https://conda.anaconda.org/conda-forge/linux-64/binutils_linux-64-2.36-hf3e587d_5.tar.bz2#aaf724e6a4c320b225ca1f441022d70f
+https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-11.2.0-h1d223b6_12.tar.bz2#d34efbb8d7d6312c816b4bb647b818b1
+https://conda.anaconda.org/conda-forge/linux-64/abseil-cpp-20210324.2-h9c3ff4c_0.tar.bz2#baa652d7d0da41d757a31d00b4ae2c38
+https://conda.anaconda.org/conda-forge/linux-64/aws-c-common-0.6.2-h7f98852_0.tar.bz2#ce69a062b3080485b760378841240634
+https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-h7f98852_4.tar.bz2#a1fd65c7ccbf10880423d82bca54eb54
+https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.18.1-h7f98852_0.tar.bz2#f26ef8098fab1f719c91eb760d63381a
+https://conda.anaconda.org/conda-forge/linux-64/gflags-2.2.2-he1b5a44_1004.tar.bz2#cddaf2c63ea4a5901cf09524c490ecdc
+https://conda.anaconda.org/conda-forge/linux-64/gtest-1.10.0-h4bd325d_7.tar.bz2#ffe1e8d8de23af5f9aee101cb2a82cf7
+https://conda.anaconda.org/conda-forge/linux-64/libbrotlicommon-1.0.9-h7f98852_6.tar.bz2#b0f44f63f7d771d7670747a1dd5d5ac1
+https://conda.anaconda.org/conda-forge/linux-64/libcrc32c-1.1.2-h9c3ff4c_0.tar.bz2#c965a5aa0d5c1c37ffc62dff36e28400
+https://conda.anaconda.org/conda-forge/linux-64/libev-4.33-h516909a_1.tar.bz2#6f8720dff19e17ce5d48cfe7f3d2f0a3
+https://conda.anaconda.org/conda-forge/linux-64/libffi-3.4.2-h7f98852_5.tar.bz2#d645c6d2ac96843a2bfaccd2d62b3ac3
+https://conda.anaconda.org/conda-forge/linux-64/libnsl-2.0.0-h7f98852_0.tar.bz2#39b1328babf85c7c3a61636d9cd50206
+https://conda.anaconda.org/conda-forge/linux-64/libopenblas-0.3.18-pthreads_h8fe5266_0.tar.bz2#41532e4448c0cce086d6570f95e4e12e
+https://conda.anaconda.org/conda-forge/linux-64/libsanitizer-9.4.0-h79bfe98_12.tar.bz2#13eb8f99569047baff01edfb8120c35e
+https://conda.anaconda.org/conda-forge/linux-64/libutf8proc-2.7.0-h7f98852_0.tar.bz2#913570ed14b42cf48ccbba364af20302
+https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.32.1-h7f98852_1000.tar.bz2#772d69f030955d9646d3d0eaf21d859d
+https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.2.11-h36c2ea0_1013.tar.bz2#dcddf696ff5dfcab567100d691678e18
+https://conda.anaconda.org/conda-forge/linux-64/lz4-c-1.9.3-h9c3ff4c_1.tar.bz2#fbe97e8fa6f275d7c76a09e795adc3e6
+https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.3-h9c3ff4c_0.tar.bz2#fb31bcb7af058244479ca635d20f0f4a
+https://conda.anaconda.org/conda-forge/linux-64/openssl-1.1.1l-h7f98852_0.tar.bz2#de7b38a1542dbe6f41653a8ae71adc53
+https://conda.anaconda.org/conda-forge/linux-64/re2-2022.02.01-h9c3ff4c_0.tar.bz2#faed0a1cb9c95ed71cb15b9de1bf3afa
+https://conda.anaconda.org/conda-forge/linux-64/snappy-1.1.8-he1b5a44_3.tar.bz2#83f1dc295c711bdbaf97e1f3bedf2f52
+https://conda.anaconda.org/conda-forge/linux-64/xz-5.2.5-h516909a_1.tar.bz2#33f601066901f3e1a85af3522a8113f9
+https://conda.anaconda.org/conda-forge/linux-64/aws-c-cal-0.5.11-h95a6274_0.tar.bz2#d4e7b241fb22dd3d7be1171f813d5da3
+https://conda.anaconda.org/conda-forge/linux-64/aws-checksums-0.1.11-ha31a3da_7.tar.bz2#2fdb96aaab883abc0766ff76c0a34483
+https://conda.anaconda.org/conda-forge/linux-64/gcc_impl_linux-64-9.4.0-h03d3576_12.tar.bz2#dd24912b641140dc74c0bfb2033f9b1b
+https://conda.anaconda.org/conda-forge/linux-64/glog-0.5.0-h48cff8f_0.tar.bz2#a574d6262c2f18ed60a686e1014a6700
+https://conda.anaconda.org/conda-forge/linux-64/libblas-3.9.0-13_linux64_openblas.tar.bz2#8a4038563ed92dfa622bd72c0d8f31d3
+https://conda.anaconda.org/conda-forge/linux-64/libbrotlidec-1.0.9-h7f98852_6.tar.bz2#c7c03a2592cac92246a13a0732bd1573
+https://conda.anaconda.org/conda-forge/linux-64/libbrotlienc-1.0.9-h7f98852_6.tar.bz2#28bfe0a70154e6881da7bae97517c948
+https://conda.anaconda.org/conda-forge/linux-64/libedit-3.1.20191231-he28a2e2_2.tar.bz2#4d331e44109e3f0e19b4cb8f9b82f3e1
+https://conda.anaconda.org/conda-forge/linux-64/libevent-2.1.10-h9b69904_4.tar.bz2#390026683aef81db27ff1b8570ca1336
+https://conda.anaconda.org/conda-forge/linux-64/libllvm13-13.0.1-hf817b99_0.tar.bz2#8fd6f0628d54935a4620b8dcbf300ee3
+https://conda.anaconda.org/conda-forge/linux-64/readline-8.1-h46c0cb4_0.tar.bz2#5788de3c8d7a7d64ac56c784c4ef48e6
+https://conda.anaconda.org/conda-forge/linux-64/s2n-1.0.10-h9b69904_0.tar.bz2#9708c3ac26c20b4c4549cbe8fef937eb
+https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.12-h27826a3_0.tar.bz2#5b8c42eb62e9fc961af70bdd6a26e168
+https://conda.anaconda.org/conda-forge/linux-64/zlib-1.2.11-h36c2ea0_1013.tar.bz2#cf7190238072a41e9579e4476a6a60b8
+https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.2-ha95c52a_0.tar.bz2#5222b231b1ef49a7f60d40b363469b70
+https://conda.anaconda.org/conda-forge/linux-64/aws-c-io-0.10.5-hfb6a706_0.tar.bz2#47d6b88b0c42a8c9877f3993b49f052d
+https://conda.anaconda.org/conda-forge/linux-64/gcc-9.4.0-h192d537_5.tar.bz2#2dca31fb79229558405ad02f3328ce18
+https://conda.anaconda.org/conda-forge/linux-64/gcc_linux-64-9.4.0-h391b98a_5.tar.bz2#00cc202c08737df3143486b5e5cb5f46
+https://conda.anaconda.org/conda-forge/linux-64/gfortran_impl_linux-64-9.4.0-h0003116_12.tar.bz2#a90ea60020bf8976f156330af5030131
+https://conda.anaconda.org/conda-forge/linux-64/gxx_impl_linux-64-9.4.0-h03d3576_12.tar.bz2#b8402eb94d27526e767033c75d4f5858
+https://conda.anaconda.org/conda-forge/linux-64/krb5-1.19.2-hcc1bbae_3.tar.bz2#e29650992ae593bc05fc93722483e5c3
+https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.9.0-13_linux64_openblas.tar.bz2#b17676dbd6688396c3a3076259fb7907
+https://conda.anaconda.org/conda-forge/linux-64/libclang-13.0.1-default_hc23dcda_0.tar.bz2#8cebb0736cba83485b13dc10d242d96d
+https://conda.anaconda.org/conda-forge/linux-64/libclang-cpp13-13.0.1-default_hc23dcda_0.tar.bz2#f492332e48fb4f5e44bd20c133517d1a
+https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.9.0-13_linux64_openblas.tar.bz2#018b80e8f21d8560ae4961567e3e00c9
+https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.46.0-h812cca2_0.tar.bz2#507fa47e9075f889af8e8b72925379be
+https://conda.anaconda.org/conda-forge/linux-64/libprotobuf-3.19.4-h780b84a_0.tar.bz2#9ff9ab8cc887d4bdebc7c7dba641626f
+https://conda.anaconda.org/conda-forge/linux-64/libssh2-1.10.0-ha56f1ee_2.tar.bz2#6ab4eaa11ff01801cffca0a27489dc04
+https://conda.anaconda.org/conda-forge/linux-64/libthrift-0.15.0-he6d91bd_1.tar.bz2#97155bdbbd9a42d278981c1f958e06c0
+https://conda.anaconda.org/conda-forge/linux-64/sqlite-3.37.0-h9cd32fc_0.tar.bz2#eb66fc098824d25518a79e83d12a81d6
+https://conda.anaconda.org/conda-forge/linux-64/aws-c-event-stream-0.2.7-h3541f99_13.tar.bz2#39768ba0fe69c241d54703a7f5e3119f
+https://conda.anaconda.org/conda-forge/linux-64/c-compiler-1.3.0-h7f98852_0.tar.bz2#543ebd7ec7822fc5fb0284adfa3ba284
+https://conda.anaconda.org/conda-forge/linux-64/clang-format-13-13.0.1-default_hc23dcda_0.tar.bz2#32f4adc0ffa64442ab7c1b863ef8f8ed
+https://conda.anaconda.org/conda-forge/linux-64/gfortran_linux-64-9.4.0-hf0ab688_5.tar.bz2#4ffed95ab167d1303bcd446f711fc6e5
+https://conda.anaconda.org/conda-forge/linux-64/grpc-cpp-1.43.2-h9e046d8_1.tar.bz2#d9687ebeaec84b63d1bcbfd079ebe61e
+https://conda.anaconda.org/conda-forge/linux-64/gxx-9.4.0-h192d537_5.tar.bz2#024aec65604a948cfca58d2350b43b25
+https://conda.anaconda.org/conda-forge/linux-64/gxx_linux-64-9.4.0-h0316aca_5.tar.bz2#e488f85749d675e5c6e4c3dbf56aa812
+https://conda.anaconda.org/conda-forge/linux-64/libcurl-7.81.0-h2574ce0_0.tar.bz2#1f8655741d0269ca6756f131522da1e8
+https://conda.anaconda.org/conda-forge/linux-64/orc-1.7.3-h1be678f_0.tar.bz2#390f40a6ceaa94b3b221599456168856
+https://conda.anaconda.org/conda-forge/linux-64/python-3.9.10-h85951f9_2_cpython.tar.bz2#eb70cef531c241272a35010ea8a4f705
+https://conda.anaconda.org/conda-forge/noarch/alabaster-0.7.12-py_0.tar.bz2#2489a97287f90176ecdc3ca982b4b0a0
+https://conda.anaconda.org/conda-forge/linux-64/aws-sdk-cpp-1.8.186-hb4091e7_3.tar.bz2#3c08d9ee5cb4fe57774405a429f12351
+https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-2.0.12-pyhd8ed1ab_0.tar.bz2#1f5b32dabae0f1893ae3283dac7f799e
+https://conda.anaconda.org/conda-forge/linux-64/clang-format-13.0.1-default_hc23dcda_0.tar.bz2#e64b91f6f4c0436a808419ded3f1fcaf
+https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.4-pyh9f0ad1d_0.tar.bz2#c08b4c1326b880ed44f3ffb04803332f
+https://conda.anaconda.org/conda-forge/linux-64/cxx-compiler-1.3.0-h4bd325d_0.tar.bz2#0fbd916fafd28bc73ba5b9855fdfc94d
+https://conda.anaconda.org/conda-forge/linux-64/gfortran-9.4.0-h2018a41_5.tar.bz2#8ae6954630b91454904112139680c51c
+https://conda.anaconda.org/conda-forge/noarch/idna-3.3-pyhd8ed1ab_0.tar.bz2#40b50b8b030f5f2f22085c062ed013dd
+https://conda.anaconda.org/conda-forge/noarch/imagesize-1.3.0-pyhd8ed1ab_0.tar.bz2#be807e7606fff9436e5e700f6bffb7c6
+https://conda.anaconda.org/conda-forge/linux-64/libgoogle-cloud-1.35.0-h6945097_2.tar.bz2#cd98869ef2ab424c943dcd3e1d8cd354
+https://conda.anaconda.org/conda-forge/noarch/pycparser-2.21-pyhd8ed1ab_0.tar.bz2#076becd9e05608f8dc72757d5f3a91ff
+https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.0.7-pyhd8ed1ab_0.tar.bz2#727e2216d9c47455d8ddc060eb2caad9
+https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.9-2_cp39.tar.bz2#39adde4247484de2bb4000122fdcf665
+https://conda.anaconda.org/conda-forge/noarch/pytz-2021.3-pyhd8ed1ab_0.tar.bz2#7e4f811bff46a5a6a7e0094921389395
+https://conda.anaconda.org/conda-forge/noarch/snowballstemmer-2.2.0-pyhd8ed1ab_0.tar.bz2#4d22a9315e78c6827f806065957d566e
+https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-applehelp-1.0.2-py_0.tar.bz2#20b2eaeaeea4ef9a9a0d99770620fd09
+https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-devhelp-1.0.2-py_0.tar.bz2#68e01cac9d38d0e717cd5c87bc3d2cc9
+https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-htmlhelp-2.0.0-pyhd8ed1ab_0.tar.bz2#77dad82eb9c8c1525ff7953e0756d708
+https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-jsmath-1.0.1-py_0.tar.bz2#67cd9d9c0382d37479b4d306c369a2d4
+https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-qthelp-1.0.3-py_0.tar.bz2#d01180388e6d1838c3e1ad029590aa7a
+https://conda.anaconda.org/conda-forge/noarch/zipp-3.7.0-pyhd8ed1ab_1.tar.bz2#b689b2cbc8481b224777415e1a193170
+https://conda.anaconda.org/conda-forge/noarch/babel-2.9.1-pyh44b312d_0.tar.bz2#74136ed39bfea0832d338df1e58d013e
+https://conda.anaconda.org/conda-forge/linux-64/certifi-2021.10.8-py39hf3d152e_1.tar.bz2#67982d98030fde9139a64219dbe4db5e
+https://conda.anaconda.org/conda-forge/linux-64/cffi-1.15.0-py39h4bc2ebd_0.tar.bz2#f6191bf565dee581e77549d63737751c
+https://conda.anaconda.org/conda-forge/linux-64/clang-tools-13.0.1-default_hc23dcda_0.tar.bz2#d3478b6f39d7413ace3f727fd88167d8
+https://conda.anaconda.org/conda-forge/linux-64/docutils-0.17.1-py39hf3d152e_1.tar.bz2#8c11754f3614fddbb3ab585164829dfc
+https://conda.anaconda.org/conda-forge/linux-64/fortran-compiler-1.3.0-h1990efc_0.tar.bz2#fc19435a9a259c341f8478068036099c
+https://conda.anaconda.org/conda-forge/linux-64/importlib-metadata-4.11.1-py39hf3d152e_0.tar.bz2#2f682cc4885383e56249e2c39137bf35
+https://conda.anaconda.org/conda-forge/linux-64/markupsafe-2.1.0-py39hb9d737c_0.tar.bz2#394ae1759ca48ad0d55282cdd468bfcd
+https://conda.anaconda.org/conda-forge/linux-64/numpy-1.22.2-py39h91f2184_0.tar.bz2#83a015042ad4dd725d59f5d223ec3db9
+https://conda.anaconda.org/conda-forge/noarch/packaging-21.3-pyhd8ed1ab_0.tar.bz2#71f1ab2de48613876becddd496371c85
+https://conda.anaconda.org/conda-forge/linux-64/pysocks-1.7.1-py39hf3d152e_4.tar.bz2#eed9d381f391cad4e96f697e8c74e929
+https://conda.anaconda.org/conda-forge/linux-64/setuptools-60.9.3-py39hf3d152e_0.tar.bz2#f7f1f230795c8b18c5439b134a7ac27f
+https://conda.anaconda.org/conda-forge/linux-64/arrow-cpp-7.0.0-py39h6409b3a_2_cpu.tar.bz2#7a13f383222d41abad2922cbbba95db9
+https://conda.anaconda.org/conda-forge/linux-64/brotlipy-0.7.0-py39h3811e60_1003.tar.bz2#9b1975f772d5d8a398c34e539a7ea1a1
+https://conda.anaconda.org/conda-forge/linux-64/compilers-1.3.0-ha770c72_0.tar.bz2#9e0cda2ff85c8fba2ba4fb0046c61764
+https://conda.anaconda.org/conda-forge/linux-64/cryptography-36.0.1-py39h95dcef6_0.tar.bz2#986821383dd9622121c1a0b8a745b1e2
+https://conda.anaconda.org/conda-forge/noarch/jinja2-3.0.3-pyhd8ed1ab_0.tar.bz2#036d872c653780cb26e797e2e2f61b4c
+https://conda.anaconda.org/conda-forge/noarch/pygments-2.11.2-pyhd8ed1ab_0.tar.bz2#caef60540e2239e27bf62569a5015e3b
+https://conda.anaconda.org/conda-forge/noarch/parquet-cpp-1.5.1-2.tar.bz2#79a5f78c42817594ae016a7896521a97
+https://conda.anaconda.org/conda-forge/noarch/pyopenssl-22.0.0-pyhd8ed1ab_0.tar.bz2#1d7e241dfaf5475e893d4b824bb71b44
+https://conda.anaconda.org/conda-forge/linux-64/pyarrow-7.0.0-py39hff6fa39_2_cpu.tar.bz2#4be928b7b177c6d4857b6b341c3e1aba
+https://conda.anaconda.org/conda-forge/noarch/urllib3-1.26.8-pyhd8ed1ab_1.tar.bz2#53f1387c68c21cecb386e2cde51b3f7c
+https://conda.anaconda.org/conda-forge/noarch/requests-2.27.1-pyhd8ed1ab_0.tar.bz2#7c1c427246b057b8fa97200ecdb2ed62
+https://conda.anaconda.org/conda-forge/noarch/sphinx-4.4.0-pyh6c4a22f_1.tar.bz2#a9025d14c2a609e0d895ad3e75b5369c
+https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-serializinghtml-1.1.5-pyhd8ed1ab_1.tar.bz2#63d2f874f990fdcab47c822b608d6ade
diff --git a/cpp/conda-linux-aarch64.lock b/cpp/conda-linux-aarch64.lock
new file mode 100644
index 0000000..4714b9f
--- /dev/null
+++ b/cpp/conda-linux-aarch64.lock
@@ -0,0 +1,128 @@
+# Generated by conda-lock.
+# platform: linux-aarch64
+# input_hash: 6ecaafc50c6915cab927b2bd9123db76577f77c6fe7eb3a782f202a45f6c5e91
+@EXPLICIT
+https://conda.anaconda.org/conda-forge/linux-aarch64/ca-certificates-2021.10.8-h4fd8a4c_0.tar.bz2#ad855209fcca3b45da677d409b16e021
+https://conda.anaconda.org/conda-forge/noarch/kernel-headers_linux-aarch64-4.18.0-h5b4a56d_13.tar.bz2#a9385e5b11a076c40d75915986f498d7
+https://conda.anaconda.org/conda-forge/linux-aarch64/ld_impl_linux-aarch64-2.36.1-h02ad14f_2.tar.bz2#3ca1a8e406eab04ffc3bfa6e8ac0a724
+https://conda.anaconda.org/conda-forge/linux-aarch64/libgcc-devel_linux-aarch64-9.4.0-h85f5abf_12.tar.bz2#ed0c76c111a37ca34b4efad58df3566a
+https://conda.anaconda.org/conda-forge/linux-aarch64/libgfortran5-11.2.0-h440fb59_12.tar.bz2#74f1d951027bcb7cd09d398fd83c12a2
+https://conda.anaconda.org/conda-forge/linux-aarch64/libgomp-11.2.0-hf1cc4e7_12.tar.bz2#a3abd5f12d1924da46051081e51c081b
+https://conda.anaconda.org/conda-forge/linux-aarch64/libstdcxx-devel_linux-aarch64-9.4.0-h85f5abf_12.tar.bz2#88432568e7f59450a4ba285e62f07dd5
+https://conda.anaconda.org/conda-forge/linux-aarch64/libstdcxx-ng-11.2.0-h0d0a5bb_12.tar.bz2#d70ff7375c4c8932b97779c06cfc4773
+https://conda.anaconda.org/conda-forge/noarch/tzdata-2021e-he74cb21_0.tar.bz2#a751ec502589ebdc2eceb183ff602569
+https://conda.anaconda.org/conda-forge/linux-aarch64/_openmp_mutex-4.5-1_gnu.tar.bz2#d029b13a6c638f91c9db96a991ac56f0
+https://conda.anaconda.org/conda-forge/linux-aarch64/libgfortran-ng-11.2.0-he9431aa_12.tar.bz2#2c23107e15eaf80adff201615b35fdcb
+https://conda.anaconda.org/conda-forge/noarch/sysroot_linux-aarch64-2.17-h43d7e78_13.tar.bz2#6d8f1fd1e675ba478041892112887949
+https://conda.anaconda.org/conda-forge/linux-aarch64/binutils_impl_linux-aarch64-2.36.1-h026399b_2.tar.bz2#c00459e3a7076170a888607de3221247
+https://conda.anaconda.org/conda-forge/linux-aarch64/libgcc-ng-11.2.0-hf1cc4e7_12.tar.bz2#ca39126cbeb9134518087c642abf26fc
+https://conda.anaconda.org/conda-forge/linux-aarch64/abseil-cpp-20210324.2-h01db608_0.tar.bz2#19f433cbd46bc7b77f3ba94d6964fa64
+https://conda.anaconda.org/conda-forge/linux-aarch64/aws-c-common-0.6.2-hf897c2e_0.tar.bz2#65bc3dd151f785d72c592bd6574d51d7
+https://conda.anaconda.org/conda-forge/linux-aarch64/binutils-2.36.1-h64c2a2e_2.tar.bz2#67a1e916b2218bb50dcfe9a7932f0325
+https://conda.anaconda.org/conda-forge/linux-aarch64/binutils_linux-aarch64-2.36-h7854541_5.tar.bz2#45b88f86db72ea1b20a5ed81b02523be
+https://conda.anaconda.org/conda-forge/linux-aarch64/bzip2-1.0.8-hf897c2e_4.tar.bz2#2d787570a729e273a4e75775ddf3348a
+https://conda.anaconda.org/conda-forge/linux-aarch64/c-ares-1.18.1-hf897c2e_0.tar.bz2#12c54b174dd7c6a9331e729d24c39515
+https://conda.anaconda.org/conda-forge/linux-aarch64/gflags-2.2.2-h54f1f3f_1004.tar.bz2#f286d3464cc8d467c92e4f17990c98c1
+https://conda.anaconda.org/conda-forge/linux-aarch64/gtest-1.10.0-hd62202e_7.tar.bz2#6743d5572dd78ce83acf6588142508e8
+https://conda.anaconda.org/conda-forge/linux-aarch64/libbrotlicommon-1.0.9-hf897c2e_6.tar.bz2#db09880c08564f64cb06ee996b8736d5
+https://conda.anaconda.org/conda-forge/linux-aarch64/libcrc32c-1.1.2-h01db608_0.tar.bz2#268ee639c17ada0002fb04dd21816cc2
+https://conda.anaconda.org/conda-forge/linux-aarch64/libev-4.33-h516909a_1.tar.bz2#9eac5901791494108c9b9ab85ca8aa93
+https://conda.anaconda.org/conda-forge/linux-aarch64/libffi-3.4.2-h3557bc0_5.tar.bz2#dddd85f4d52121fab0a8b099c5e06501
+https://conda.anaconda.org/conda-forge/linux-aarch64/libnsl-2.0.0-hf897c2e_0.tar.bz2#36fdbc05c9d9145ece86f5a63c3f352e
+https://conda.anaconda.org/conda-forge/linux-aarch64/libopenblas-0.3.18-pthreads_h775ce2d_0.tar.bz2#1ca386fb2a69cad512670e0cf082f2a3
+https://conda.anaconda.org/conda-forge/linux-aarch64/libsanitizer-9.4.0-h4d00405_12.tar.bz2#aa6687d465bcc31442dc1dc6fc31aa0a
+https://conda.anaconda.org/conda-forge/linux-aarch64/libutf8proc-2.7.0-hf897c2e_0.tar.bz2#09a036693b8e077ccbb0e4c25af2a16c
+https://conda.anaconda.org/conda-forge/linux-aarch64/libuuid-2.32.1-hf897c2e_1000.tar.bz2#e038da5ef9095b0d79aac14a311394e7
+https://conda.anaconda.org/conda-forge/linux-aarch64/libzlib-1.2.11-hb9de7d4_1013.tar.bz2#8da01d8d112058433902f24c753f5190
+https://conda.anaconda.org/conda-forge/linux-aarch64/lz4-c-1.9.3-h01db608_1.tar.bz2#25b5ec27b49b04a997a87b0f00f5e205
+https://conda.anaconda.org/conda-forge/linux-aarch64/ncurses-6.3-h01db608_0.tar.bz2#c791f8ce7e66da3e5ccd22470ada6ccf
+https://conda.anaconda.org/conda-forge/linux-aarch64/openssl-1.1.1l-hf897c2e_0.tar.bz2#c63d90652f46d4b1c1b9da23716ed4a7
+https://conda.anaconda.org/conda-forge/linux-aarch64/re2-2022.02.01-h01db608_0.tar.bz2#29b0e8adcf18c0ecac8a72acc73d73fe
+https://conda.anaconda.org/conda-forge/linux-aarch64/snappy-1.1.8-h54f1f3f_3.tar.bz2#03bdf8b9ba23ba70ef17073bee7d39dd
+https://conda.anaconda.org/conda-forge/linux-aarch64/xz-5.2.5-h6dd45c4_1.tar.bz2#9da6f161d0f47f8a29fa708cda8deda2
+https://conda.anaconda.org/conda-forge/linux-aarch64/aws-c-cal-0.5.11-h76602a3_0.tar.bz2#b4bc77d1e9aafae1961fa14be5999fe5
+https://conda.anaconda.org/conda-forge/linux-aarch64/aws-checksums-0.1.11-hafdcbdd_7.tar.bz2#8dd89d70f18be569bbfbf1de40cd6658
+https://conda.anaconda.org/conda-forge/linux-aarch64/gcc_impl_linux-aarch64-9.4.0-h603953f_12.tar.bz2#835ee5332c38d47402369c5f436c634c
+https://conda.anaconda.org/conda-forge/linux-aarch64/glog-0.5.0-hbffda88_0.tar.bz2#939375fff4b51fcf1e3921e6fab165c1
+https://conda.anaconda.org/conda-forge/linux-aarch64/libblas-3.9.0-13_linuxaarch64_openblas.tar.bz2#a845b50b554fc280dc012b44889d7f64
+https://conda.anaconda.org/conda-forge/linux-aarch64/libbrotlidec-1.0.9-hf897c2e_6.tar.bz2#f2b0ffe32e64782bcd3db1baacb37625
+https://conda.anaconda.org/conda-forge/linux-aarch64/libbrotlienc-1.0.9-hf897c2e_6.tar.bz2#8c98f807ddd1009083b3a4efd6f827ca
+https://conda.anaconda.org/conda-forge/linux-aarch64/libedit-3.1.20191231-he28a2e2_2.tar.bz2#29371161d77933a54fccf1bb66b96529
+https://conda.anaconda.org/conda-forge/linux-aarch64/libevent-2.1.10-h6aed413_4.tar.bz2#688418283c67fd1d725b07ba9c0d328c
+https://conda.anaconda.org/conda-forge/linux-aarch64/libllvm13-13.0.1-h6293a0b_0.tar.bz2#04a9693b5caf9a3562e5c3aab7b13d68
+https://conda.anaconda.org/conda-forge/linux-aarch64/readline-8.1-h1a49cc3_0.tar.bz2#ccd3c3e1bde615ec934282f3481a1ede
+https://conda.anaconda.org/conda-forge/linux-aarch64/s2n-1.0.10-h6aed413_0.tar.bz2#a2811501920071cbd542e7d1aac7dcf9
+https://conda.anaconda.org/conda-forge/linux-aarch64/tk-8.6.12-hd8af866_0.tar.bz2#7894e82ff743bd96c76585ddebe28e2a
+https://conda.anaconda.org/conda-forge/linux-aarch64/zlib-1.2.11-hb9de7d4_1013.tar.bz2#7528dd959ebfdf9b73e3ffa79356e114
+https://conda.anaconda.org/conda-forge/linux-aarch64/zstd-1.5.2-h41fb7a4_0.tar.bz2#03434131cc82915a59513e1ab989fdd5
+https://conda.anaconda.org/conda-forge/linux-aarch64/aws-c-io-0.10.5-h5a3db43_0.tar.bz2#1d77281aabc9b2202b225cee0bb7300a
+https://conda.anaconda.org/conda-forge/linux-aarch64/gcc-9.4.0-hff40af5_5.tar.bz2#728436f75b8252a3b6c3e9e236d86e75
+https://conda.anaconda.org/conda-forge/linux-aarch64/gcc_linux-aarch64-9.4.0-h9fa865e_5.tar.bz2#eb1ee40b092af1d672622a413f8913ed
+https://conda.anaconda.org/conda-forge/linux-aarch64/gfortran_impl_linux-aarch64-9.4.0-h54cdb55_12.tar.bz2#04cc569424bc1b8643ae193413850149
+https://conda.anaconda.org/conda-forge/linux-aarch64/gxx_impl_linux-aarch64-9.4.0-h603953f_12.tar.bz2#3c6966c48d0eecdd65830482667c88f3
+https://conda.anaconda.org/conda-forge/linux-aarch64/krb5-1.19.2-h4f20351_2.tar.bz2#4b553ede9fe44be7ee4b80c3aad67f51
+https://conda.anaconda.org/conda-forge/linux-aarch64/libcblas-3.9.0-13_linuxaarch64_openblas.tar.bz2#0b8e63f48a4f4c2f382a1ce2d71788a5
+https://conda.anaconda.org/conda-forge/linux-aarch64/libclang-13.0.1-default_hf9dac01_0.tar.bz2#93986a5fa1c39f725ab05380ff2471e6
+https://conda.anaconda.org/conda-forge/linux-aarch64/libclang-cpp13-13.0.1-default_hf9dac01_0.tar.bz2#ac3ba8320af529949dc3356ec2905759
+https://conda.anaconda.org/conda-forge/linux-aarch64/liblapack-3.9.0-13_linuxaarch64_openblas.tar.bz2#5937a66b4386d731df627f0eac99928e
+https://conda.anaconda.org/conda-forge/linux-aarch64/libnghttp2-1.46.0-h097699d_0.tar.bz2#dda93e153833071204e17ee4911edccc
+https://conda.anaconda.org/conda-forge/linux-aarch64/libprotobuf-3.19.4-h469bdbd_0.tar.bz2#8601868f83e474baf64c05f29be9eefa
+https://conda.anaconda.org/conda-forge/linux-aarch64/libssh2-1.10.0-h1ab2c7b_2.tar.bz2#91b9f2d8cfd9a3d9341bca8800a8f463
+https://conda.anaconda.org/conda-forge/linux-aarch64/libthrift-0.15.0-hb5cdc64_1.tar.bz2#0389cb676b9ac5b6745e188bee8318da
+https://conda.anaconda.org/conda-forge/linux-aarch64/sqlite-3.37.0-hc164836_0.tar.bz2#81077a2ca51dfd8183f842e5b337e62a
+https://conda.anaconda.org/conda-forge/linux-aarch64/aws-c-event-stream-0.2.7-hf314db3_13.tar.bz2#262217173231b3a68bcda58c62d57f7e
+https://conda.anaconda.org/conda-forge/linux-aarch64/c-compiler-1.3.0-hf897c2e_0.tar.bz2#1fa1a855fad5fbee391ad4cd2b493853
+https://conda.anaconda.org/conda-forge/linux-aarch64/clang-format-13-13.0.1-default_hf9dac01_0.tar.bz2#4077900679c43a2f90ec6dee3101829e
+https://conda.anaconda.org/conda-forge/linux-aarch64/gfortran_linux-aarch64-9.4.0-h02353c8_5.tar.bz2#68e145d4581bcbf2773ad426f136a356
+https://conda.anaconda.org/conda-forge/linux-aarch64/grpc-cpp-1.43.2-h4e595cf_1.tar.bz2#bfa07f38fb1ee7e4cd7aba16dd4335ba
+https://conda.anaconda.org/conda-forge/linux-aarch64/gxx-9.4.0-hff40af5_5.tar.bz2#ba2a66d620e0cde0d7db0fe2e99d6903
+https://conda.anaconda.org/conda-forge/linux-aarch64/gxx_linux-aarch64-9.4.0-h1e24722_5.tar.bz2#45aee6d63a18a8ce467c30ea43a0aed5
+https://conda.anaconda.org/conda-forge/linux-aarch64/libcurl-7.81.0-hcafe9da_0.tar.bz2#82c3a2999a2a7fc9b8cb8477d98fe7f5
+https://conda.anaconda.org/conda-forge/linux-aarch64/orc-1.7.3-h5c30ecb_0.tar.bz2#cb4f95b76c2515c5a272a36c6af13af8
+https://conda.anaconda.org/conda-forge/linux-aarch64/python-3.9.10-he7f7bba_2_cpython.tar.bz2#902240b183b55c8f1034d0b97b3ce4eb
+https://conda.anaconda.org/conda-forge/noarch/alabaster-0.7.12-py_0.tar.bz2#2489a97287f90176ecdc3ca982b4b0a0
+https://conda.anaconda.org/conda-forge/linux-aarch64/aws-sdk-cpp-1.8.186-h3fd84e4_3.tar.bz2#e654ca7c8da2a1ffcfacb44b4f0ce257
+https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-2.0.12-pyhd8ed1ab_0.tar.bz2#1f5b32dabae0f1893ae3283dac7f799e
+https://conda.anaconda.org/conda-forge/linux-aarch64/clang-format-13.0.1-default_hf9dac01_0.tar.bz2#9e8852eac03d36a020433f31855c87cb
+https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.4-pyh9f0ad1d_0.tar.bz2#c08b4c1326b880ed44f3ffb04803332f
+https://conda.anaconda.org/conda-forge/linux-aarch64/cxx-compiler-1.3.0-hd62202e_0.tar.bz2#d213dc5d10b2132574af0a583ca6aaae
+https://conda.anaconda.org/conda-forge/linux-aarch64/gfortran-9.4.0-h958508c_5.tar.bz2#d01165871eb7b0645fb5d2e197920c68
+https://conda.anaconda.org/conda-forge/noarch/idna-3.3-pyhd8ed1ab_0.tar.bz2#40b50b8b030f5f2f22085c062ed013dd
+https://conda.anaconda.org/conda-forge/noarch/imagesize-1.3.0-pyhd8ed1ab_0.tar.bz2#be807e7606fff9436e5e700f6bffb7c6
+https://conda.anaconda.org/conda-forge/linux-aarch64/libgoogle-cloud-1.35.0-h82cccae_2.tar.bz2#42adaa9929b4b0c743e055d679dd6971
+https://conda.anaconda.org/conda-forge/noarch/pycparser-2.21-pyhd8ed1ab_0.tar.bz2#076becd9e05608f8dc72757d5f3a91ff
+https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.0.7-pyhd8ed1ab_0.tar.bz2#727e2216d9c47455d8ddc060eb2caad9
+https://conda.anaconda.org/conda-forge/linux-aarch64/python_abi-3.9-2_cp39.tar.bz2#c74e493d773fa544a312b0904abcfbfb
+https://conda.anaconda.org/conda-forge/noarch/pytz-2021.3-pyhd8ed1ab_0.tar.bz2#7e4f811bff46a5a6a7e0094921389395
+https://conda.anaconda.org/conda-forge/noarch/snowballstemmer-2.2.0-pyhd8ed1ab_0.tar.bz2#4d22a9315e78c6827f806065957d566e
+https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-applehelp-1.0.2-py_0.tar.bz2#20b2eaeaeea4ef9a9a0d99770620fd09
+https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-devhelp-1.0.2-py_0.tar.bz2#68e01cac9d38d0e717cd5c87bc3d2cc9
+https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-htmlhelp-2.0.0-pyhd8ed1ab_0.tar.bz2#77dad82eb9c8c1525ff7953e0756d708
+https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-jsmath-1.0.1-py_0.tar.bz2#67cd9d9c0382d37479b4d306c369a2d4
+https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-qthelp-1.0.3-py_0.tar.bz2#d01180388e6d1838c3e1ad029590aa7a
+https://conda.anaconda.org/conda-forge/noarch/zipp-3.7.0-pyhd8ed1ab_1.tar.bz2#b689b2cbc8481b224777415e1a193170
+https://conda.anaconda.org/conda-forge/noarch/babel-2.9.1-pyh44b312d_0.tar.bz2#74136ed39bfea0832d338df1e58d013e
+https://conda.anaconda.org/conda-forge/linux-aarch64/certifi-2021.10.8-py39ha65689a_1.tar.bz2#86a5e95d84499b2ee10c535da732b188
+https://conda.anaconda.org/conda-forge/linux-aarch64/cffi-1.15.0-py39hab139ec_0.tar.bz2#e19fa26ceac3f4b0e0f11e4d65b41416
+https://conda.anaconda.org/conda-forge/linux-aarch64/clang-tools-13.0.1-default_hf9dac01_0.tar.bz2#5cdef3b22ea03f21e81168767d83fe76
+https://conda.anaconda.org/conda-forge/linux-aarch64/docutils-0.17.1-py39ha65689a_1.tar.bz2#cca23e9a0abb7389983153fc060ef403
+https://conda.anaconda.org/conda-forge/linux-aarch64/fortran-compiler-1.3.0-h88a8a60_0.tar.bz2#71f9db6e70556e7215de466d9a57fb86
+https://conda.anaconda.org/conda-forge/linux-aarch64/importlib-metadata-4.11.1-py39ha65689a_0.tar.bz2#b09bc4636ea67b5b1ec0747e95a84d69
+https://conda.anaconda.org/conda-forge/linux-aarch64/markupsafe-2.1.0-py39hb9a1dbb_0.tar.bz2#7d84ffc4d0b96c12a2e951d9a0e9ec54
+https://conda.anaconda.org/conda-forge/linux-aarch64/numpy-1.22.2-py39h8a86e7d_0.tar.bz2#55d9b0e132cca58112f4adcc3665d821
+https://conda.anaconda.org/conda-forge/noarch/packaging-21.3-pyhd8ed1ab_0.tar.bz2#71f1ab2de48613876becddd496371c85
+https://conda.anaconda.org/conda-forge/linux-aarch64/pysocks-1.7.1-py39ha65689a_4.tar.bz2#3b59004ab4fd8110e4349a630afc4b17
+https://conda.anaconda.org/conda-forge/linux-aarch64/setuptools-60.9.3-py39ha65689a_0.tar.bz2#0389bdea7301af99bdc480d40b10d415
+https://conda.anaconda.org/conda-forge/linux-aarch64/arrow-cpp-7.0.0-py39hf9328f6_2_cpu.tar.bz2#a3b3eb29101db54842d4424d9661369a
+https://conda.anaconda.org/conda-forge/linux-aarch64/brotlipy-0.7.0-py39h14843e3_1003.tar.bz2#3a33e442189583f64b9c7c9cf0795236
+https://conda.anaconda.org/conda-forge/linux-aarch64/compilers-1.3.0-h8af1aa0_0.tar.bz2#64c1b1a6c5b1339093c1b7ee4cc6036d
+https://conda.anaconda.org/conda-forge/linux-aarch64/cryptography-36.0.1-py39h659f20f_0.tar.bz2#daf5807253bed814672337a6a9f628b5
+https://conda.anaconda.org/conda-forge/noarch/jinja2-3.0.3-pyhd8ed1ab_0.tar.bz2#036d872c653780cb26e797e2e2f61b4c
+https://conda.anaconda.org/conda-forge/noarch/pygments-2.11.2-pyhd8ed1ab_0.tar.bz2#caef60540e2239e27bf62569a5015e3b
+https://conda.anaconda.org/conda-forge/noarch/parquet-cpp-1.5.1-2.tar.bz2#79a5f78c42817594ae016a7896521a97
+https://conda.anaconda.org/conda-forge/noarch/pyopenssl-22.0.0-pyhd8ed1ab_0.tar.bz2#1d7e241dfaf5475e893d4b824bb71b44
+https://conda.anaconda.org/conda-forge/linux-aarch64/pyarrow-7.0.0-py39ha97d641_2_cpu.tar.bz2#5393921bc8a7279638714e9106b16bac
+https://conda.anaconda.org/conda-forge/noarch/urllib3-1.26.8-pyhd8ed1ab_1.tar.bz2#53f1387c68c21cecb386e2cde51b3f7c
+https://conda.anaconda.org/conda-forge/noarch/requests-2.27.1-pyhd8ed1ab_0.tar.bz2#7c1c427246b057b8fa97200ecdb2ed62
+https://conda.anaconda.org/conda-forge/noarch/sphinx-4.4.0-pyh6c4a22f_1.tar.bz2#a9025d14c2a609e0d895ad3e75b5369c
+https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-serializinghtml-1.1.5-pyhd8ed1ab_1.tar.bz2#63d2f874f990fdcab47c822b608d6ade
diff --git a/cpp/conda-osx-arm64.lock b/cpp/conda-osx-arm64.lock
new file mode 100644
index 0000000..7679b58
--- /dev/null
+++ b/cpp/conda-osx-arm64.lock
@@ -0,0 +1,125 @@
+# Generated by conda-lock.
+# platform: osx-arm64
+# input_hash: 213de6cee69e8b1eece6cd1a009f9d5336d80db7461fa506cdb07b3152629943
+@EXPLICIT
+https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-common-0.6.2-h3422bc3_0.tar.bz2#e6c0dfc1c6e34241720983abb66ec35e
+https://conda.anaconda.org/conda-forge/osx-arm64/bzip2-1.0.8-h3422bc3_4.tar.bz2#fc76ace7b94fb1f694988ab1b14dd248
+https://conda.anaconda.org/conda-forge/osx-arm64/c-ares-1.18.1-h3422bc3_0.tar.bz2#5dd04dad345af4f1e8f3f0d5afc03b67
+https://conda.anaconda.org/conda-forge/osx-arm64/ca-certificates-2021.10.8-h4653dfc_0.tar.bz2#d68f418ab2f7a46948ccb4053636f913
+https://conda.anaconda.org/conda-forge/osx-arm64/libbrotlicommon-1.0.9-h3422bc3_6.tar.bz2#b3eda06c8994f20d829fbe89ccc4b0b1
+https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-12.0.1-h168391b_1.tar.bz2#ff81bd5236632ba2e0100ce806144aa8
+https://conda.anaconda.org/conda-forge/osx-arm64/libev-4.33-h642e427_1.tar.bz2#566dbf70fe79eacdb3c3d3d195a27f55
+https://conda.anaconda.org/conda-forge/osx-arm64/libffi-3.4.2-h3422bc3_5.tar.bz2#086914b672be056eb70fd4285b6783b6
+https://conda.anaconda.org/conda-forge/noarch/libgfortran-devel_osx-arm64-11.0.1.dev0-hf114ba7_23.tar.bz2#b7f6c1195d33e702ecd20ce2b66267ae
+https://conda.anaconda.org/conda-forge/osx-arm64/libiconv-1.16-h642e427_0.tar.bz2#981f3119b0c5d73282401ee66c14ea04
+https://conda.anaconda.org/conda-forge/osx-arm64/libutf8proc-2.7.0-h3422bc3_0.tar.bz2#ab92457cc1b6c0a2643c08c7a4e501fc
+https://conda.anaconda.org/conda-forge/osx-arm64/libzlib-1.2.11-hee7b306_1013.tar.bz2#fe3c74ef0fe456a4011468f860b0c3dc
+https://conda.anaconda.org/conda-forge/osx-arm64/llvm-openmp-13.0.1-hf3c4609_0.tar.bz2#22cdcc2eed7e54579ff650be9c4d4d0c
+https://conda.anaconda.org/conda-forge/osx-arm64/ncurses-6.3-hc470f4d_0.tar.bz2#6b5b4e8e22d02a9f30fc4c703d2a69f6
+https://conda.anaconda.org/conda-forge/noarch/tzdata-2021e-he74cb21_0.tar.bz2#a751ec502589ebdc2eceb183ff602569
+https://conda.anaconda.org/conda-forge/osx-arm64/xz-5.2.5-h642e427_1.tar.bz2#9ab2316785cb81c464ab9a99512dae71
+https://conda.anaconda.org/conda-forge/osx-arm64/abseil-cpp-20210324.2-hbdafb3b_0.tar.bz2#3b1e49c303751215e83babb0f980be3e
+https://conda.anaconda.org/conda-forge/osx-arm64/aws-checksums-0.1.11-h487e1a8_7.tar.bz2#edf91bd9464b05ca9d29be2a730b9468
+https://conda.anaconda.org/conda-forge/osx-arm64/gflags-2.2.2-hc88da5d_1004.tar.bz2#aab9ddfad863e9ef81229a1f8852211b
+https://conda.anaconda.org/conda-forge/osx-arm64/gmp-6.2.1-h9f76cd9_0.tar.bz2#f8140773b6ca51bf32feec9b4290a8c5
+https://conda.anaconda.org/conda-forge/osx-arm64/gtest-1.10.0-h260d524_7.tar.bz2#6cf52e5b6e93ee084121e152c46eb858
+https://conda.anaconda.org/conda-forge/osx-arm64/isl-0.22.1-hb904e53_2.tar.bz2#04fe6ad5c7dfbec3b8956aca167940fc
+https://conda.anaconda.org/conda-forge/osx-arm64/libbrotlidec-1.0.9-h3422bc3_6.tar.bz2#5ee99175123dcd24b3857bf467f1044f
+https://conda.anaconda.org/conda-forge/osx-arm64/libbrotlienc-1.0.9-h3422bc3_6.tar.bz2#be28e048477fc17a4b59a66f4f4418a7
+https://conda.anaconda.org/conda-forge/osx-arm64/libcrc32c-1.1.2-hbdafb3b_0.tar.bz2#32bd82a6a625ea6ce090a81c3d34edeb
+https://conda.anaconda.org/conda-forge/osx-arm64/libedit-3.1.20191231-hc8eb9b7_2.tar.bz2#30e4362988a2623e9eb34337b83e01f9
+https://conda.anaconda.org/conda-forge/osx-arm64/libgfortran5-11.0.1.dev0-hf114ba7_23.tar.bz2#402c05211a9c339c71a1e82ac8b7ad81
+https://conda.anaconda.org/conda-forge/osx-arm64/libllvm11-11.1.0-h93073aa_3.tar.bz2#3092589066a18ffa092b842ece9fc426
+https://conda.anaconda.org/conda-forge/osx-arm64/lz4-c-1.9.3-hbdafb3b_1.tar.bz2#074b9beb2e563515c0dd46229b18d521
+https://conda.anaconda.org/conda-forge/osx-arm64/openssl-1.1.1l-h3422bc3_0.tar.bz2#0b3c59333ff2693e8de50b6f679bd3cd
+https://conda.anaconda.org/conda-forge/osx-arm64/re2-2022.02.01-hbdafb3b_0.tar.bz2#54e29e68123d2ace54d11a0412305967
+https://conda.anaconda.org/conda-forge/osx-arm64/readline-8.1-hedafd6a_0.tar.bz2#3ab98d5fd433cd392a1b0781391a9e38
+https://conda.anaconda.org/conda-forge/osx-arm64/snappy-1.1.8-hc88da5d_3.tar.bz2#135a8eea821d611227a52a0a1b7c52e9
+https://conda.anaconda.org/conda-forge/osx-arm64/tapi-1100.0.11-he4954df_0.tar.bz2#d83362e7d0513f35f454bc50b0ca591d
+https://conda.anaconda.org/conda-forge/osx-arm64/tk-8.6.12-he1e0b03_0.tar.bz2#2cb3d18eac154109107f093860bd545f
+https://conda.anaconda.org/conda-forge/osx-arm64/zlib-1.2.11-hee7b306_1013.tar.bz2#0b65c3db409dd06257dd879605eddb45
+https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-cal-0.5.11-h4530763_0.tar.bz2#ce11646fafb17267c81d929ca42cdb5c
+https://conda.anaconda.org/conda-forge/osx-arm64/glog-0.5.0-h5c6a83d_0.tar.bz2#1d553ce42ca7852d459e851a5ae3d4d4
+https://conda.anaconda.org/conda-forge/osx-arm64/krb5-1.19.2-hd92b7a7_3.tar.bz2#833b40d09291292d3d6649535aa56b9c
+https://conda.anaconda.org/conda-forge/osx-arm64/libclang-cpp11.1-11.1.0-default_h0fdd720_1.tar.bz2#d09ee5f38a54d87ba571065695414a28
+https://conda.anaconda.org/conda-forge/osx-arm64/libevent-2.1.10-hbae9a57_4.tar.bz2#a1f2aca3c5999a24527d6f8a3a8e9320
+https://conda.anaconda.org/conda-forge/osx-arm64/libgfortran-5.0.0.dev0-11_0_1_hf114ba7_23.tar.bz2#75f6bd23c894fbb8d353c75edb7041d6
+https://conda.anaconda.org/conda-forge/osx-arm64/libnghttp2-1.46.0-he4cd7f6_0.tar.bz2#394abe091b8d8c78b1c59104b8438a90
+https://conda.anaconda.org/conda-forge/osx-arm64/libprotobuf-3.19.4-hccf11d3_0.tar.bz2#a89d03f004d294a1d8644189009b7e77
+https://conda.anaconda.org/conda-forge/osx-arm64/libssh2-1.10.0-hb80f160_2.tar.bz2#0c349d0f6965a927b5b57dedbb0a650b
+https://conda.anaconda.org/conda-forge/osx-arm64/llvm-tools-11.1.0-h93073aa_3.tar.bz2#edbfd72269b09e40e8f78894608c5c6a
+https://conda.anaconda.org/conda-forge/osx-arm64/mpfr-4.1.0-h6d7a090_1.tar.bz2#c37f296f76cfb61d4f91613da93789e6
+https://conda.anaconda.org/conda-forge/osx-arm64/sigtool-0.1.3-h7747421_0.tar.bz2#565b291dcdefa3e59830b1222800f46a
+https://conda.anaconda.org/conda-forge/osx-arm64/sqlite-3.37.0-h72a2b83_0.tar.bz2#f74a80bbaeb1ba21140af97042e9192c
+https://conda.anaconda.org/conda-forge/osx-arm64/zstd-1.5.2-h861e0a7_0.tar.bz2#1ecb5634b253f1849feefe7227824e3f
+https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-io-0.10.5-hea86ef8_0.tar.bz2#03d1eeb5706292ae6570456b98f38dcb
+https://conda.anaconda.org/conda-forge/osx-arm64/clang-11-11.1.0-default_h0fdd720_1.tar.bz2#8ca76d7efe8172e1a55b10e0fa618a5e
+https://conda.anaconda.org/conda-forge/osx-arm64/grpc-cpp-1.43.2-ha9bca3c_1.tar.bz2#ab1d05b7e8c8faa12d941e4452156627
+https://conda.anaconda.org/conda-forge/osx-arm64/ld64_osx-arm64-609-h354fe41_6.tar.bz2#059d1aa055a88f4dd78d79d70974ec2f
+https://conda.anaconda.org/conda-forge/osx-arm64/libcurl-7.81.0-h8fe1914_0.tar.bz2#69a0d49c499feec90cba515d7860f6bd
+https://conda.anaconda.org/conda-forge/osx-arm64/libopenblas-0.3.18-openmp_h5dd58f0_0.tar.bz2#8860a24cd05b691ea33f8c85f9981d4b
+https://conda.anaconda.org/conda-forge/osx-arm64/libthrift-0.15.0-h28a9c34_1.tar.bz2#5aa405675684f579041d9d296f89cfc4
+https://conda.anaconda.org/conda-forge/osx-arm64/mpc-1.2.1-h309154c_0.tar.bz2#5673ae769869dc7df76458cca52557e2
+https://conda.anaconda.org/conda-forge/osx-arm64/orc-1.7.3-hcb6706d_0.tar.bz2#1be35f7f0672449437af796f8bfccf12
+https://conda.anaconda.org/conda-forge/osx-arm64/python-3.9.10-hd16f9c5_2_cpython.tar.bz2#bc3b42bea9ad6a7d230bfe9fe915786e
+https://conda.anaconda.org/conda-forge/noarch/alabaster-0.7.12-py_0.tar.bz2#2489a97287f90176ecdc3ca982b4b0a0
+https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-event-stream-0.2.7-h9972306_13.tar.bz2#1aa327d20aec700b23809ce8c1da34cd
+https://conda.anaconda.org/conda-forge/osx-arm64/cctools_osx-arm64-973.0.1-ha8964d5_6.tar.bz2#dabcf3f28dac9615f4afceadbcacda8b
+https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-2.0.12-pyhd8ed1ab_0.tar.bz2#1f5b32dabae0f1893ae3283dac7f799e
+https://conda.anaconda.org/conda-forge/osx-arm64/clang-11.1.0-hce30654_1.tar.bz2#d2671870f9522b53e733561bdafce0aa
+https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.4-pyh9f0ad1d_0.tar.bz2#c08b4c1326b880ed44f3ffb04803332f
+https://conda.anaconda.org/conda-forge/osx-arm64/gfortran_impl_osx-arm64-11.0.1.dev0-hbce66ab_23.tar.bz2#885d39e5dac9071a6b286968debd6cdf
+https://conda.anaconda.org/conda-forge/noarch/idna-3.3-pyhd8ed1ab_0.tar.bz2#40b50b8b030f5f2f22085c062ed013dd
+https://conda.anaconda.org/conda-forge/noarch/imagesize-1.3.0-pyhd8ed1ab_0.tar.bz2#be807e7606fff9436e5e700f6bffb7c6
+https://conda.anaconda.org/conda-forge/osx-arm64/ld64-609-h08716b2_6.tar.bz2#02f1884c9e0e8e98ca46bb2f45930856
+https://conda.anaconda.org/conda-forge/osx-arm64/libblas-3.9.0-13_osxarm64_openblas.tar.bz2#cfe4c943d79f32e927f859de87fb03f1
+https://conda.anaconda.org/conda-forge/osx-arm64/libgoogle-cloud-1.35.0-h2b0db34_2.tar.bz2#5bfd9fa64778bebb079fd0abc2cc588c
+https://conda.anaconda.org/conda-forge/noarch/pycparser-2.21-pyhd8ed1ab_0.tar.bz2#076becd9e05608f8dc72757d5f3a91ff
+https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.0.7-pyhd8ed1ab_0.tar.bz2#727e2216d9c47455d8ddc060eb2caad9
+https://conda.anaconda.org/conda-forge/osx-arm64/python_abi-3.9-2_cp39.tar.bz2#ba3082b5441b482d5cfe328d4e7ba0bf
+https://conda.anaconda.org/conda-forge/noarch/pytz-2021.3-pyhd8ed1ab_0.tar.bz2#7e4f811bff46a5a6a7e0094921389395
+https://conda.anaconda.org/conda-forge/noarch/snowballstemmer-2.2.0-pyhd8ed1ab_0.tar.bz2#4d22a9315e78c6827f806065957d566e
+https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-applehelp-1.0.2-py_0.tar.bz2#20b2eaeaeea4ef9a9a0d99770620fd09
+https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-devhelp-1.0.2-py_0.tar.bz2#68e01cac9d38d0e717cd5c87bc3d2cc9
+https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-htmlhelp-2.0.0-pyhd8ed1ab_0.tar.bz2#77dad82eb9c8c1525ff7953e0756d708
+https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-jsmath-1.0.1-py_0.tar.bz2#67cd9d9c0382d37479b4d306c369a2d4
+https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-qthelp-1.0.3-py_0.tar.bz2#d01180388e6d1838c3e1ad029590aa7a
+https://conda.anaconda.org/conda-forge/noarch/zipp-3.7.0-pyhd8ed1ab_1.tar.bz2#b689b2cbc8481b224777415e1a193170
+https://conda.anaconda.org/conda-forge/osx-arm64/aws-sdk-cpp-1.8.186-hb86bbe7_3.tar.bz2#5443878eb1d419ea51036c3d0e42bbed
+https://conda.anaconda.org/conda-forge/noarch/babel-2.9.1-pyh44b312d_0.tar.bz2#74136ed39bfea0832d338df1e58d013e
+https://conda.anaconda.org/conda-forge/osx-arm64/cctools-973.0.1-ha9384d2_6.tar.bz2#c8b9cc1b376fe0a6214da3be80370773
+https://conda.anaconda.org/conda-forge/osx-arm64/certifi-2021.10.8-py39h2804cbe_1.tar.bz2#fb53ec8c7ae669a5388856ffe7c12a00
+https://conda.anaconda.org/conda-forge/osx-arm64/cffi-1.15.0-py39h52b1de0_0.tar.bz2#3333a407ad0bb89fb85954579c76b88f
+https://conda.anaconda.org/conda-forge/osx-arm64/clangxx-11.1.0-default_h8b1a7b7_1.tar.bz2#60b4aecc623568847a93a261403c4c40
+https://conda.anaconda.org/conda-forge/osx-arm64/docutils-0.17.1-py39h2804cbe_1.tar.bz2#11d85bd8f6e9c634a71276ceb70490a2
+https://conda.anaconda.org/conda-forge/osx-arm64/importlib-metadata-4.11.1-py39h2804cbe_0.tar.bz2#09ab5c9ed2087ae8baf13176a07e7a22
+https://conda.anaconda.org/conda-forge/osx-arm64/libcblas-3.9.0-13_osxarm64_openblas.tar.bz2#edf690edcb07d6a02fc12c9f31c2dd94
+https://conda.anaconda.org/conda-forge/osx-arm64/liblapack-3.9.0-13_osxarm64_openblas.tar.bz2#a362cd24e842692a7fcacee3788f4af9
+https://conda.anaconda.org/conda-forge/osx-arm64/markupsafe-2.1.0-py39hb18efdd_0.tar.bz2#d7a254e80e6defbe29d7b0bb3bfc78a1
+https://conda.anaconda.org/conda-forge/noarch/packaging-21.3-pyhd8ed1ab_0.tar.bz2#71f1ab2de48613876becddd496371c85
+https://conda.anaconda.org/conda-forge/osx-arm64/pysocks-1.7.1-py39h2804cbe_4.tar.bz2#770a25ef670b5154e54c854f561d667d
+https://conda.anaconda.org/conda-forge/osx-arm64/setuptools-60.9.3-py39h2804cbe_0.tar.bz2#84373bb6755d513fcb98531dbb8cce82
+https://conda.anaconda.org/conda-forge/osx-arm64/brotlipy-0.7.0-py39h5161555_1003.tar.bz2#851dacb18129066f316a417ffc236748
+https://conda.anaconda.org/conda-forge/osx-arm64/clang-tools-11.1.0-default_h0fdd720_1.tar.bz2#b483422253628dc78a2e14da93f48bcc
+https://conda.anaconda.org/conda-forge/noarch/compiler-rt_osx-arm64-11.1.0-h103ad0d_0.tar.bz2#7a7d6c99b671eccd17ea66627eb6a938
+https://conda.anaconda.org/conda-forge/osx-arm64/cryptography-36.0.1-py39hfb8cd70_0.tar.bz2#95d6a9b811c3876e6e5a78c4dbe5cc4e
+https://conda.anaconda.org/conda-forge/noarch/jinja2-3.0.3-pyhd8ed1ab_0.tar.bz2#036d872c653780cb26e797e2e2f61b4c
+https://conda.anaconda.org/conda-forge/osx-arm64/numpy-1.22.2-py39h61a45d2_0.tar.bz2#4aa1a915c27a80a9252f9646f39c5b1a
+https://conda.anaconda.org/conda-forge/noarch/pygments-2.11.2-pyhd8ed1ab_0.tar.bz2#caef60540e2239e27bf62569a5015e3b
+https://conda.anaconda.org/conda-forge/osx-arm64/arrow-cpp-7.0.0-py39h763d086_2_cpu.tar.bz2#eacce293f5663c1c23766ac5bcd96abb
+https://conda.anaconda.org/conda-forge/osx-arm64/compiler-rt-11.1.0-h7d99272_0.tar.bz2#3786907db1287b697dea35257f6e7d07
+https://conda.anaconda.org/conda-forge/noarch/pyopenssl-22.0.0-pyhd8ed1ab_0.tar.bz2#1d7e241dfaf5475e893d4b824bb71b44
+https://conda.anaconda.org/conda-forge/osx-arm64/clang_osx-arm64-11.1.0-hf92b6e0_6.tar.bz2#e8a4a631081998c6f3e07333004c1259
+https://conda.anaconda.org/conda-forge/noarch/parquet-cpp-1.5.1-2.tar.bz2#79a5f78c42817594ae016a7896521a97
+https://conda.anaconda.org/conda-forge/noarch/urllib3-1.26.8-pyhd8ed1ab_1.tar.bz2#53f1387c68c21cecb386e2cde51b3f7c
+https://conda.anaconda.org/conda-forge/osx-arm64/c-compiler-1.3.0-h3422bc3_0.tar.bz2#9192951695fdc50165683daae24b5943
+https://conda.anaconda.org/conda-forge/osx-arm64/clangxx_osx-arm64-11.1.0-h0742238_6.tar.bz2#69647e9cd1ad766fa7b9308564f6224a
+https://conda.anaconda.org/conda-forge/osx-arm64/gfortran_osx-arm64-11.0.1.dev0-h57527a5_15.tar.bz2#90e072be00b31296db1f42bf24da2e3e
+https://conda.anaconda.org/conda-forge/osx-arm64/pyarrow-7.0.0-py39hd3b58d7_2_cpu.tar.bz2#02f686435b43d0dcecf8de41b4b4af76
+https://conda.anaconda.org/conda-forge/noarch/requests-2.27.1-pyhd8ed1ab_0.tar.bz2#7c1c427246b057b8fa97200ecdb2ed62
+https://conda.anaconda.org/conda-forge/osx-arm64/cxx-compiler-1.3.0-hc021e02_0.tar.bz2#9374b0a398c592f845498db9f7c63fb9
+https://conda.anaconda.org/conda-forge/osx-arm64/gfortran-11.0.1.dev0-h40eb566_15.tar.bz2#ce046dbc7de8c17e0c19ef48f81d9a81
+https://conda.anaconda.org/conda-forge/osx-arm64/fortran-compiler-1.3.0-h630c574_0.tar.bz2#8a759000650a674186ae399f22df9362
+https://conda.anaconda.org/conda-forge/osx-arm64/compilers-1.3.0-hce30654_0.tar.bz2#58bf1f7b87c147ce7f69bc8344fa8f9c
+https://conda.anaconda.org/conda-forge/noarch/sphinx-4.4.0-pyh6c4a22f_1.tar.bz2#a9025d14c2a609e0d895ad3e75b5369c
+https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-serializinghtml-1.1.5-pyhd8ed1ab_1.tar.bz2#63d2f874f990fdcab47c822b608d6ade
diff --git a/cpp/environment.yml b/cpp/environment.yml
index b6a5c0f..87c9852 100644
--- a/cpp/environment.yml
+++ b/cpp/environment.yml
@@ -2,121 +2,10 @@ name: cookbook-cpp
channels:
- conda-forge
dependencies:
- - _libgcc_mutex=0.1=conda_forge
- - _openmp_mutex=4.5=1_gnu
- - abseil-cpp=20210324.2=h9c3ff4c_0
- - alabaster=0.7.12=py_0
- - arrow-cpp=6.0.1=py39h01fd06f_8_cpu
- - aws-c-cal=0.5.11=h95a6274_0
- - aws-c-common=0.6.2=h7f98852_0
- - aws-c-event-stream=0.2.7=h3541f99_13
- - aws-c-io=0.10.5=hfb6a706_0
- - aws-checksums=0.1.11=ha31a3da_7
- - aws-sdk-cpp=1.8.186=hb4091e7_3
- - babel=2.9.1=pyh44b312d_0
- - binutils_impl_linux-64=2.36.1=h193b22a_2
- - binutils_linux-64=2.36=hf3e587d_0
- - brotlipy=0.7.0=py39h3811e60_1001
- - bzip2=1.0.8=h7f98852_4
- - c-ares=1.18.1=h7f98852_0
- - ca-certificates=2021.10.8=ha878542_0
- - certifi=2021.10.8=py39hf3d152e_1
- - cffi=1.14.6=py39he32792d_0
- - chardet=4.0.0=py39hf3d152e_1
- - charset-normalizer=2.0.0=pyhd8ed1ab_0
- - clang=11.1.0=ha770c72_1
- - clang-11=11.1.0=default_ha53f305_1
- - clang-tools=11.1.0=default_ha53f305_1
- - clangxx=11.1.0=default_ha53f305_1
- - cmake=3.21.1=h8897547_0
- - colorama=0.4.4=pyh9f0ad1d_0
- - cryptography=3.4.7=py39hbca0aa6_0
- - docutils=0.17.1=py39hf3d152e_0
- - expat=2.4.1=h9c3ff4c_0
- - gcc_impl_linux-64=11.1.0=h6b5115b_8
- - gcc_linux-64=11.1.0=h97fdae6_0
- - gflags=2.2.2=he1b5a44_1004
- - glog=0.5.0=h48cff8f_0
- - grpc-cpp=1.42.0=ha1441d3_1
- - gtest=1.10.0=h4bd325d_7
- - gxx_impl_linux-64=11.1.0=h6b5115b_8
- - gxx_linux-64=11.1.0=h33c4e4b_0
- - idna=3.1=pyhd3deb0d_0
- - imagesize=1.2.0=py_0
- - jinja2=3.0.1=pyhd8ed1ab_0
- - kernel-headers_linux-64=2.6.32=he073ed8_14
- - krb5=1.19.2=hcc1bbae_0
- - ld_impl_linux-64=2.36.1=hea4e1c9_2
- - libblas=3.9.0=10_openblas
- - libbrotlicommon=1.0.9=h7f98852_5
- - libbrotlidec=1.0.9=h7f98852_5
- - libbrotlienc=1.0.9=h7f98852_5
- - libcblas=3.9.0=10_openblas
- - libclang-cpp11.1=11.1.0=default_ha53f305_1
- - libcurl=7.78.0=h2574ce0_0
- - libedit=3.1.20191231=he28a2e2_2
- - libev=4.33=h516909a_1
- - libevent=2.1.10=hcdb4288_3
- - libffi=3.3=h58526e2_2
- - libgcc-devel_linux-64=11.1.0=h80e7780_8
- - libgcc-ng=11.2.0=h1d223b6_12
- - libgfortran-ng=11.1.0=h69a702a_8
- - libgfortran5=11.1.0=h6c583b3_8
- - libgomp=11.2.0=h1d223b6_12
- - liblapack=3.9.0=10_openblas
- - libllvm11=11.1.0=hf817b99_2
- - libnghttp2=1.43.0=h812cca2_0
- - libopenblas=0.3.17=pthreads_h8fe5266_1
- - libprotobuf=3.19.4=h780b84a_0
- - libsanitizer=11.1.0=h56837e0_8
- - libssh2=1.9.0=ha56f1ee_6
- - libstdcxx-devel_linux-64=11.1.0=h80e7780_8
- - libstdcxx-ng=11.2.0=he4da1e4_12
- - libthrift=0.15.0=he6d91bd_1
- - libutf8proc=2.7.0=h7f98852_0
- - libuv=1.42.0=h7f98852_0
- - libzlib=1.2.11=h36c2ea0_1013
- - lz4-c=1.9.3=h9c3ff4c_1
- - make=4.3=hd18ef5c_1
- - markupsafe=2.0.1=py39h3811e60_0
- - ncurses=6.2=h58526e2_4
- - numpy=1.21.1=py39hdbf815f_0
- - openssl=1.1.1l=h7f98852_0
- - orc=1.7.2=h1be678f_0
- - packaging=21.0=pyhd8ed1ab_0
- - parquet-cpp=1.5.1=2
- - pip=21.2.3=pyhd8ed1ab_0
- - pyarrow=6.0.1=py39hff6fa39_8_cpu
- - pycparser=2.20=pyh9f0ad1d_2
- - pygments=2.9.0=pyhd8ed1ab_0
- - pyopenssl=20.0.1=pyhd8ed1ab_0
- - pyparsing=2.4.7=pyh9f0ad1d_0
- - pysocks=1.7.1=py39hf3d152e_3
- - python=3.9.6=h49503c6_1_cpython
- - python_abi=3.9=2_cp39
- - pytz=2021.1=pyhd8ed1ab_0
- - re2=2021.11.01=h9c3ff4c_0
- - readline=8.1=h46c0cb4_0
- - requests=2.26.0=pyhd8ed1ab_0
- - rhash=1.4.1=h7f98852_0
- - s2n=1.0.10=h9b69904_0
- - setuptools=49.6.0=py39hf3d152e_3
- - six=1.16.0=pyh6c4a22f_0
- - snappy=1.1.8=he1b5a44_3
- - snowballstemmer=2.1.0=pyhd8ed1ab_0
- - sphinx=4.0.2=pyh6c4a22f_1
- - sphinxcontrib-applehelp=1.0.2=py_0
- - sphinxcontrib-devhelp=1.0.2=py_0
- - sphinxcontrib-htmlhelp=2.0.0=pyhd8ed1ab_0
- - sphinxcontrib-jsmath=1.0.1=py_0
- - sphinxcontrib-qthelp=1.0.3=py_0
- - sphinxcontrib-serializinghtml=1.1.5=pyhd8ed1ab_0
- - sqlite=3.36.0=h9cd32fc_0
- - sysroot_linux-64=2.12=he073ed8_14
- - tk=8.6.10=h21135ba_1
- - tzdata=2021a=he74cb21_1
- - urllib3=1.26.6=pyhd8ed1ab_0
- - wheel=0.36.2=pyhd3deb0d_0
- - xz=5.2.5=h516909a_1
- - zlib=1.2.11=h36c2ea0_1013
- - zstd=1.5.2=ha95c52a_0
+ - python=3.9
+ - compilers
+ - arrow-cpp >=7,<8
+ - sphinx
+ - gtest
+ - pyarrow >=7,<8
+ - clang-tools
\ No newline at end of file