Merging PR_218 openai_rev package with new streamlit chat app
This commit is contained in:
@@ -0,0 +1,150 @@
|
||||
// Licensed to the Apache Software Foundation (ASF) under one
|
||||
// or more contributor license agreements. See the NOTICE file
|
||||
// distributed with this work for additional information
|
||||
// regarding copyright ownership. The ASF licenses this file
|
||||
// to you under the Apache License, Version 2.0 (the
|
||||
// "License"); you may not use this file except in compliance
|
||||
// with the License. You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing,
|
||||
// software distributed under the License is distributed on an
|
||||
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
// KIND, either express or implied. See the License for the
|
||||
// specific language governing permissions and limitations
|
||||
// under the License.
|
||||
|
||||
// Public API for the "Feather" file format, originally created at
|
||||
// http://github.com/wesm/feather
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <cstdint>
|
||||
#include <memory>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
#include "arrow/ipc/options.h"
|
||||
#include "arrow/type_fwd.h"
|
||||
#include "arrow/util/compression.h"
|
||||
#include "arrow/util/visibility.h"
|
||||
|
||||
namespace arrow {
|
||||
|
||||
class Schema;
|
||||
class Status;
|
||||
class Table;
|
||||
|
||||
namespace io {
|
||||
|
||||
class OutputStream;
|
||||
class RandomAccessFile;
|
||||
|
||||
} // namespace io
|
||||
|
||||
namespace ipc {
|
||||
namespace feather {
|
||||
|
||||
static constexpr const int kFeatherV1Version = 2;
|
||||
static constexpr const int kFeatherV2Version = 3;
|
||||
|
||||
// ----------------------------------------------------------------------
|
||||
// Metadata accessor classes
|
||||
|
||||
/// \class Reader
|
||||
/// \brief An interface for reading columns from Feather files
|
||||
class ARROW_EXPORT Reader {
|
||||
public:
|
||||
virtual ~Reader() = default;
|
||||
|
||||
/// \brief Open a Feather file from a RandomAccessFile interface
|
||||
///
|
||||
/// \param[in] source a RandomAccessFile instance
|
||||
/// \return the table reader
|
||||
static Result<std::shared_ptr<Reader>> Open(
|
||||
const std::shared_ptr<io::RandomAccessFile>& source);
|
||||
|
||||
/// \brief Open a Feather file from a RandomAccessFile interface
|
||||
/// with IPC Read options
|
||||
///
|
||||
/// \param[in] source a RandomAccessFile instance
|
||||
/// \param[in] options IPC Read options
|
||||
/// \return the table reader
|
||||
static Result<std::shared_ptr<Reader>> Open(
|
||||
const std::shared_ptr<io::RandomAccessFile>& source, const IpcReadOptions& options);
|
||||
|
||||
/// \brief Return the version number of the Feather file
|
||||
virtual int version() const = 0;
|
||||
|
||||
virtual std::shared_ptr<Schema> schema() const = 0;
|
||||
|
||||
/// \brief Read all columns from the file as an arrow::Table.
|
||||
///
|
||||
/// \param[out] out the returned table
|
||||
/// \return Status
|
||||
///
|
||||
/// This function is zero-copy if the file source supports zero-copy reads
|
||||
virtual Status Read(std::shared_ptr<Table>* out) = 0;
|
||||
|
||||
/// \brief Read only the specified columns from the file as an arrow::Table.
|
||||
///
|
||||
/// \param[in] indices the column indices to read
|
||||
/// \param[out] out the returned table
|
||||
/// \return Status
|
||||
///
|
||||
/// This function is zero-copy if the file source supports zero-copy reads
|
||||
virtual Status Read(const std::vector<int>& indices, std::shared_ptr<Table>* out) = 0;
|
||||
|
||||
/// \brief Read only the specified columns from the file as an arrow::Table.
|
||||
///
|
||||
/// \param[in] names the column names to read
|
||||
/// \param[out] out the returned table
|
||||
/// \return Status
|
||||
///
|
||||
/// This function is zero-copy if the file source supports zero-copy reads
|
||||
virtual Status Read(const std::vector<std::string>& names,
|
||||
std::shared_ptr<Table>* out) = 0;
|
||||
};
|
||||
|
||||
struct ARROW_EXPORT WriteProperties {
|
||||
static WriteProperties Defaults();
|
||||
|
||||
static WriteProperties DefaultsV1() {
|
||||
WriteProperties props = Defaults();
|
||||
props.version = kFeatherV1Version;
|
||||
return props;
|
||||
}
|
||||
|
||||
/// Feather file version number
|
||||
///
|
||||
/// version 2: "Feather V1" Apache Arrow <= 0.16.0
|
||||
/// version 3: "Feather V2" Apache Arrow > 0.16.0
|
||||
int version = kFeatherV2Version;
|
||||
|
||||
// Parameters for Feather V2 only
|
||||
|
||||
/// Number of rows per intra-file chunk. Use smaller chunksize when you need
|
||||
/// faster random row access
|
||||
int64_t chunksize = 1LL << 16;
|
||||
|
||||
/// Compression type to use. Only UNCOMPRESSED, LZ4_FRAME, and ZSTD are
|
||||
/// supported. The default compression returned by Defaults() is LZ4 if the
|
||||
/// project is built with support for it, otherwise
|
||||
/// UNCOMPRESSED. UNCOMPRESSED is set as the object default here so that if
|
||||
/// WriteProperties::Defaults() is not used, the default constructor for
|
||||
/// WriteProperties will work regardless of the options used to build the C++
|
||||
/// project.
|
||||
Compression::type compression = Compression::UNCOMPRESSED;
|
||||
|
||||
/// Compressor-specific compression level
|
||||
int compression_level = ::arrow::util::kUseDefaultCompressionLevel;
|
||||
};
|
||||
|
||||
ARROW_EXPORT
|
||||
Status WriteTable(const Table& table, io::OutputStream* dst,
|
||||
const WriteProperties& properties = WriteProperties::Defaults());
|
||||
|
||||
} // namespace feather
|
||||
} // namespace ipc
|
||||
} // namespace arrow
|
||||
Reference in New Issue
Block a user