Sha256: 58e5a153170bd08ca5e82c26a1756ee954b8a272007201a9245d1fcc6c83374c

Contents?: true

Size: 743 Bytes

Versions: 1

Compression:

Stored size: 743 Bytes

Contents

require "pycall_thread"

PyCallThread.init do
  # Setup our local venv (using pdm, in .venv)
  ENV["PYTHON"] = `pdm run which python`.strip
  site_dir = `pdm run python -c 'import site; print(site.getsitepackages()[0])'`.strip

  require "pycall"

  # This is to setup our local venv
  site = PyCall.import_module("site")
  site.addsitedir(site_dir)
end

# Simple Puma App that demonstrates PyCallThread
class App
  def call(_)
    winequality = PyCallThread.run do
      pandas = PyCall.import_module("pandas")
      data = pandas.read_csv("https://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-red.csv", sep: ";")
      data.to_html
    end

    [200, { "Content-Type" => "text/html" }, [winequality]]
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
pycall_thread-0.1.2 examples/puma/app.rb