Skip to main content

pullframe

pypi Build Status codecov

pull based pandas dataframe syncing


To reduce network consumption, it syncs dataframe from the other nodes only on demand. When your task is divide and conquer style, you should consider dask instead.

Features

  • Once the cache has been synced, it will not call remotes. So cache's locality is 1.
  • Ideal situations is that you need to read some dataframe multiple times on serveral nodes and the data frame should be updated frequently.
  • Only unique str name is required configuration when you add a new dataframe on the system.
  • No configuration, no operation is needed when a new node is added and a node is crashed and restored.
  • No configuration, no operation makes it be easy to scale up in the cloud.

Communications

  • Coordination via zookeeper
  • Synchronize files via http POST

Start Service

$ uvicorn pullframe.sender:app

Example

Load / Save

from pullframe import pullframe

with pullframe(hosts, directory, sync_timeo 60.0) as pf:
    # set start as None if you want to load from the very beginning
    # set end as None if you want to load from the very ending
    df = pf.load(name, start: Optional[datetime], end: Optional[datetime])

    pf.save(name, df)

TODO

  • Check cache discrepency/corruption between nodes.
  • Stable backup using Amazon S3 / Google cloud storage.
  • Replace zookeeper client to zake (fake kazoo client) during tests.

Requirements

  • zookeeper
  • the dataframe's index should be datetime
  • linux
  • python>=3.7
  • python = "^3.7"
  • pandas = "^1.0.0"
  • tables = "^3.6.1"
  • fastapi = "^0.58.0"
  • aiofiles = "^0.5.0"
  • kazoo = "^2.7.0"

Free software: MIT License

Credits

Metadata

Release files for pullframe 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pullframe 0.1.0
File Size Uploaded
pullframe-0.1.0.tar.gz 10.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pullframe 0.1.0
File Interpreter ABI Platform
pullframe-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 24.3 kB

Release files / pullframe-0.1.0.tar.gz

Download URL pullframe-0.1.0.tar.gz
Size 10.4 kB
Tags Source
SHA-256 checksum
How to use checksums
9398bbd7610ea552d5bf7002950c4f3387d60440759cab92c4b0d6a3df7618c8
BLAKE2b-256 checksum
How to use checksums
fe7726a13d3eb54ddcb6f5d53245e71eac8df855cdde94a32be71da1946f12f3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.0.9 CPython/3.8.0 Linux/4.15.0-1028-gcp

Release files / pullframe-0.1.0-py3-none-any.whl

Download URL pullframe-0.1.0-py3-none-any.whl
Size 13.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8225b4d37ae4cd7f43d2506b569cc069bb79b07d4b1771aa45fa99191a53f8a1
BLAKE2b-256 checksum
How to use checksums
6e6adb992a3a8d5024bdf19cf5966a127fb37ed18a16a0a7671b7478ae78f28a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.0.9 CPython/3.8.0 Linux/4.15.0-1028-gcp

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page