Skip to main content

EventLogic is a lightweight library for performing logical operations on event-style or timestamp data. Logical operations on event-style data are commonplace in many fields. This library seeks to provide a generalized framework and methods for dealing with this data.

Project description

Description

EventLogic is a lightweight library for performing logical operations on event-style or timestamp data. Logical operations on event-style data are commonplace in many fields. This library seeks to provide a generalized framework and methods for dealing with this data.

Installation

EventLogic can be installed with pip.

pip install --upgrade pip
pip install eventlogic

Examples

There are 9 flavors of event interactions:

Case Events
1 Case 1 Image
2 Case 2 Image
3 Case 3 Image
4 Case 4 Image
5 Case 5 Image
6 Case 6 Image
7 Case 7 Image
8 Case 8 Image
9 Case 9 Image

Usage

The Event class represents an event with a start (on) and end (off) time. It supports various logical operations:

Operation Class Symbols
Comparison Operators >, <, >=, <=, ==, !=
Logical Operators &, |, ^
Containment in, not in

Creating an Event

from eventlogic import Event
event = Event(on=1, off=5)

Event Duration

duration = event.duration()  # Returns the duration of the event

Copying an Event

event_copy = event.copy()

Event Existence

exists = event.exists()  # Checks if the event is defined

Comparison Operators

If we look at case 1:

from eventlogic import Event
a = Event(3,4)
b = Event(1,2)
a > b # True
a < b # False

Logical Operations

event1 = Event(on=1, off=5)
event2 = Event(on=4, off=6)

Intersection

intersection = event1 & event2  # Returns (4,5)

Union

union = event1 | event2  # Returns [(1,6)]

xor

xor = event1 ^ event2  # Returns ((1,4), (5,6))

Containment Operators

If we look at case 9:

from eventlogic import Event
a = Event(3,4)
b = Event(2,5)
a in b # True
a not in b # False

Working with numpy.datetime64

import numpy as np
from eventlogic import Event

a = Event(np.datetime64('2023-01-01T12:00'), np.datetime64('2023-01-01T14:00'))
b = Event(np.datetime64('2023-01-01T13:00'), np.datetime64('2023-01-01T15:00'))

print(a & b)  # (2023-01-01T13:00,2023-01-01T14:00)
print(a | b)  # [(2023-01-01T12:00,2023-01-01T15:00)]
print(a > b)  # False
print(a < b)  # False

Event Container

The Events class allows for handling multiple events at once.

from eventlogic import Event, Events
events = Events([Event(1, 2), Event(3, 4), Event(5, 6)])
print(len(events))  # 3
print(events)  # [(1,2), (3,4), (5,6)]

And importantly, the creation of Events from numpy arrays (including datetime!).

import numpy as np
from eventlogic import Events

ons = np.array([1,3,5])
offs = np.array([2,4,6])
events = Events.from_arrays(ons,offs)
print(len(events))  # 3
print(events)  # [(1,2), (3,4), (5,6)]

Merging Events

merged_events = events.merge(threshold=0.5)
print(merged_events)

Filtering Events by Duration

filtered_events = events.duration_filter(lower_bound=0.5, upper_bound=2.0)
print(filtered_events)

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

eventlogic-0.1.14.tar.gz (8.6 kB view details)

Uploaded Source

Built Distribution

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

eventlogic-0.1.14-py3-none-any.whl (6.9 kB view details)

Uploaded Python 3

File details

Details for the file eventlogic-0.1.14.tar.gz.

File metadata

  • Download URL: eventlogic-0.1.14.tar.gz
  • Upload date:
  • Size: 8.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.8.15

File hashes

Hashes for eventlogic-0.1.14.tar.gz
Algorithm Hash digest
SHA256 34375c1a91628f79c67b328666964932df23cd39722c9005ee74435690c53d6c
MD5 495a32efc0c9f21f9e7ad1b91fe49ede
BLAKE2b-256 b70b1e17a0de5c6dee429a67709eda73d9669853e4d7f01a131e96d4210fc390

See more details on using hashes here.

File details

Details for the file eventlogic-0.1.14-py3-none-any.whl.

File metadata

  • Download URL: eventlogic-0.1.14-py3-none-any.whl
  • Upload date:
  • Size: 6.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.8.15

File hashes

Hashes for eventlogic-0.1.14-py3-none-any.whl
Algorithm Hash digest
SHA256 fc4015237852b3d61a7553923122ec072fe14101805a93483e58c9a8753d903a
MD5 4bf3ccdbff5bdf8714731108b803c170
BLAKE2b-256 33def5294ca1d29753af5fcb3bbc2564d1c2a04a058e8979fbce27a7de74ed57

See more details on using hashes here.

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