https://github.com/maranite/typetwo
Type two dimension processing
https://github.com/maranite/typetwo
Last synced: 8 months ago
JSON representation
Type two dimension processing
- Host: GitHub
- URL: https://github.com/maranite/typetwo
- Owner: maranite
- License: mit
- Created: 2022-01-12T06:32:15.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2022-03-23T04:02:55.000Z (over 3 years ago)
- Last Synced: 2025-02-02T22:02:28.125Z (8 months ago)
- Language: Python
- Size: 60.5 KB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Type Two
Provides a simple set of classes for handling type-II slowly changing dimension style data.
Also provides helper classes for reading and writing JSON payloads with ISO-compliant dates.## Example Usage: TypeTwo
```python
rows = [
{"id": 1, "name": "Henry", "age": 34}
{"id": 2, "name": "Fred", "age" : 42}
]history = TypeType(rows, RowKey("id"), from_field = "start", to_field = "end")
iter(history)
>>> {"id": 1, "name": "Henry", "age": 34, "start": datetime(1900,1,1), "end": datetime(2999,12,31)}
>>> {"id": 2, "name": "Fred", "age": 42, "start": datetime(1900,1,1), "end": datetime(2999,12,31)}history += {"id": 1, "name": "Henry", "age": 37}
iter(history)
>>> {"id": 1, "name": "Henry", "age": 34, "start": datetime(1900,1,1), "end": datetime(2022,6,12,3,0,0)}
>>> {"id": 1, "name": "Henry", "age": 37, "start": datetime(2022,6,12,3,0,0), "end": datetime(2999,12,31)}
>>> {"id": 2, "name": "Fred", "age": 42, "start": datetime(1900,1,1), "end": datetime(2999,12,31)}history += [
{"id": 1, "name": "Henry", "age": 99}
{"id": 2, "name": "Fred", "age": 99}
]iter(history)
>>> {"id": 1, "name": "Henry", "age": 34, "start": datetime(1900,1,1), "end": datetime(2022,6,12,3,0,0)}
>>> {"id": 1, "name": "Henry", "age": 37, "start": datetime(2022,6,12,3,0,0), "end": datetimedatetime(2022,6,12,3,15,0)}
>>> {"id": 1, "name": "Henry", "age": 99, "start": datetime(2022,6,12,3,15,0),"end": datetime(2999,12,31)}
>>> {"id": 2, "name": "Fred", "age": 42, "start": datetime(1900,1,1), "end": datetime(2022,6,12,3,15,0)}
>>> {"id": 2, "name": "Fred", "age": 99, "start": datetime(2022,6,12,3,15,0),"end": datetime(2999,12,31)}
```