Python 3 implementation of Portable Format for Analytics (PFA): producer, converter, and consumer.
Project description
Project Documentation - Link
Data Scientist: Why is my cutting edge model still not in production?
Scenario 1:
IT Team: We are still implementing the scoring engine in Go/Java/C++.
Scenario 2:
IT Team: We are still figuring out how to read the model.pkl file you provided.
. .
and the push to production pang continues ..
New Features!
titus2
home page and documentation has been migrated to https://realworldpython.github.io.
Changes in titus2 v1.2.1
View the complete changelog here.
Titus 2 - Portable Format for Analytics (PFA) implementation for Python 3.4-3.9
Titus 2 is a fork of the original Titus python library which resides in the (now defunct) Hadrian repository. Titus is not actively maintained by the Open Data Group and only supports Python 2, so this fork was created to actively support its development for Python 3.
Titus 2 is a complete, independent implementation of Portable Format for Analytics (PFA) in pure Python. PFA is a specification for scoring/inference engines: event-based processors that perform predictive or analytic calculations. It is a model interchange format which helps smoothen the transition from statistical model development to large-scale and/or online production. titus2
also focuses on model development, so it includes model producers and PFA manipulation tools in addition to runtime execution (scoring) engine.
Requirements
Titus 2 uses a number of open source projects to work properly:
avro-python3 >= 1.8.2
numpy == 1.14.0
(python 3.4 & 3.5) ornumpy >=1.15.0, <1.20
(python 3.6+)pytz >= 2019.1
pyyaml >= 5.1.2
ply >= 3.11
The above packages are available via pip
and are automatically installed during setup.
Installation
Titus requires Python 3.4+ to run. It can be installed via pip/pip3 as follows:
$ pip install titus2
or you can directly install the latest build from github repository via
$ pip install git+https://github.com/animator/titus2.git
After installation please run the following elementary example in python
from titus.genpy import PFAEngine
pfa = {"input": "double",
"output": "double",
"action": [
{"+": ["input", 100]}
]}
engine, = PFAEngine.fromJson(pfa)
l = [1.0, 2.0, 3.0, 4.0, 5.0]
for num in l:
print(num, engine.action(num))
User Guide and Tutorials
See the Project Documentation for user guide and tutorials.
Current Testing Framework
To run the tests, you can execute
python3 setup.py test
To generate the coverage report, you can execute
pip3 install coverage
coverage run setup.py test
coverage report
Testing Status:
Issues, Questions and Feature Requests
Please raise an issue/question/request here.
Development
Want to contribute? Great!
Please raise an issue to discuss your ideas and send a pull request.
Todos
- Write MORE Tests for
scripts/*
. - Add
scikit-learn
model export to PFA tutorials.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file titus2-1.2.1.tar.gz
.
File metadata
- Download URL: titus2-1.2.1.tar.gz
- Upload date:
- Size: 231.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | dd7ca43e2a7cde530e0ae440cb65d87aac9eedd8cdba9c47cff5d1882e88c297 |
|
MD5 | 4f50eb37194d53bb7d19643b55f5d3fa |
|
BLAKE2b-256 | daf184f0135b424c1bf7fdeab3b6bab9e7861a35c82800126da736a1120a034e |
File details
Details for the file titus2-1.2.1-py3-none-any.whl
.
File metadata
- Download URL: titus2-1.2.1-py3-none-any.whl
- Upload date:
- Size: 254.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9cfb0ada251b7cce0a22b7ff9e5cbacba5da1bc1043dd81960136f1bb449f982 |
|
MD5 | b704c7bf0bca05a6629ee0cad6683eec |
|
BLAKE2b-256 | 2926c0e1237b090986b1f11277b6827905d20b1ddaaea5eb203e70abb42a9a10 |