Skip to main content

Python frontend for ROOT data analyses written in queryosity

Project description

Queryosity

Version C++ Standard Ubuntu macOS MIT License

Queryosity is a row-wise data analysis library for (semi-)structured data.

  • Lazy dataflow interface.
  • Multithreaded processing.
  • Support for arbitrary input/output data.
  • Automatic propagation of systematic variations.

Documentation

Hello World

#include <fstream>
#include <sstream>
#include <vector>

#include <queryosity.hpp>
#include <queryosity/boost/histogram.hpp>
#include <queryosity/nlohmann/json.hpp>

using dataflow = qty::dataflow;
namespace multithread = qty::multithread;
namespace dataset = qty::dataset;
namespace column = qty::column;
namespace query = qty::query;

using json = qty::nlohmann::json;
using h1d = qty::boost::histogram::histogram<double>;
using linax = qty::boost::histogram::axis::regular;

int main() {
  dataflow df(multithread::enable(10));

  std::ifstream data("data.json");
  auto [x, w] = df.read(
      dataset::input<json>(data), dataset::column<std::vector<double>>("x"), dataset::column<double>("w"));

  auto zero = df.define(column::constant(0));
  auto x0 = x[zero];

  auto sel =
      df.weight(w)
          .filter(column::expression(
              [](std::vector<double> const &v) { return v.size(); }))(x);

  auto h_x0_w = df.get(query::output<h1d>(linax(20, 0.0, 200.0)))
                    .fill(x0)
                    .at(sel)
                    .result();

  std::ostringstream os;
  os << *h_x0_w;
  std::cout << os.str() << std::endl;
}

Installation

Single-header

#include <queryosity.hpp>

CMake

git clone https://github.com/taehyounpark/queryosity.git

External

cd queryosity/ && mkdir build/ && cd build/
cmake -DQUERYOSITY_INSTALL=ON ../
cmake --build .
cmake --install .
find_package(queryosity 0.9.3 REQUIRED)
...
add_library(Analysis ...)
...
target_link_libraries(Analysis INTERFACE queryosity::queryosity)
#include <queryosity.hpp>

Integrated

add_subdirectory(queryosity)
...
add_library(Analysis ...)
...
target_link_libraries(Analysis INTERFACE queryosity::queryosity)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

queryosity-0.9.3.tar.gz (17.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

queryosity-0.9.3-py3-none-any.whl (24.7 kB view details)

Uploaded Python 3

File details

Details for the file queryosity-0.9.3.tar.gz.

File metadata

  • Download URL: queryosity-0.9.3.tar.gz
  • Upload date:
  • Size: 17.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for queryosity-0.9.3.tar.gz
Algorithm Hash digest
SHA256 f744bf948882630682283654f0bf5e557d75c50431dda7ad1405c8b6864b77ce
MD5 477e1743e2820e933c29b966fd67f873
BLAKE2b-256 1ebd96df2e53f499550d83f7ca825a65e401609578c7c86f275098b07a9b4117

See more details on using hashes here.

Provenance

The following attestation bundles were made for queryosity-0.9.3.tar.gz:

Publisher: publish-to-pypi.yml on taehyounpark/queryosity

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file queryosity-0.9.3-py3-none-any.whl.

File metadata

  • Download URL: queryosity-0.9.3-py3-none-any.whl
  • Upload date:
  • Size: 24.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for queryosity-0.9.3-py3-none-any.whl
Algorithm Hash digest
SHA256 cfb97fe9252ad31977697c810deb8254884bac78d7661a9414d7d47d977b20d2
MD5 6d94f29f56b028f3e4708f5115cc03cd
BLAKE2b-256 e9992193d0e7bf63a9a110424608e61e5773f5962442b2a06119e9feab5f4ce4

See more details on using hashes here.

Provenance

The following attestation bundles were made for queryosity-0.9.3-py3-none-any.whl:

Publisher: publish-to-pypi.yml on taehyounpark/queryosity

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page