Skip to main content

Infrastructure for AI applications and machine learning pipelines

Project description

PackYak image

PyPI version

Packyak makes it easy to build Lakehouses, Data Pipelines and and AI applications on AWS.

Roadmap

  • StreamlitSite - deploy a Streamlit application to ECS with VPC and Load Balancing
  • Infer least privilege IAM Policies for Streamlit scripts (home.py, pages/*.py)
  • @function - host an Lambda Function
  • Infer least privilege IAM Policies for functions
  • Bucket - work with files in S3, attach event handlers
  • Queues - send messages to, attach event handlers
  • Stream - send and consume records through AWS Kinesis
  • Table - store structured data (Parquet, Orc, etc.) in a Glue Catalog. Model data using pydantic
  • @asset - build data pipelines with dependency graphs
  • @train - capture the inputs and outputs of a function for ML training and human feedback
  • Generate audit reports for HIPAA and GDPR compliance policies

Installation


Pre-requisites

  1. Docker (for bundling Python applications for the target runtime, e.g. in an Amazon Linux Lambda Function)
  2. Python Poetry
curl -sSL https://install.python-poetry.org | python3 -
  1. poetry-plugin-export - see https://python-poetry.org/docs/plugins/#using-plugins
poetry self add poetry-plugin-export

How To: Deploy Streamlit

Custom Domain

  1. Create a Hosted Zone
  2. Transfer the DNS nameservers from your DNS provider to the Hosted Zone
  3. Create a Certificate

HTTPS

  1. Create a Certificate via the AWS Console

Example

🔧 Note: Packyak is in active development. Not all features are implemented. Check back to see the following example grow.

Below is the most simple Packyak application: a Bucket with a Function that writes to it.

Your application's infrastructure is declared in code. The Packyak compiler analyzes it to auto-provision cloud resources (in this case AWS S3 Bucket and Lambda Function) with least privilege IAM Policy inference.

from packyak import Bucket, function

videos = Bucket("videos")

@function()
async def upload_video():
    await videos.put("key", "value")

@videos.on("create")
async def on_uploaded_video(event: Bucket.ObjectCreatedEvent):
  video = await videos.get(event.key)
  transcription

@asset()
async def transcribed_videos():
  ...

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

packyak-0.1.2.tar.gz (18.7 kB view details)

Uploaded Source

Built Distribution

packyak-0.1.2-py3-none-any.whl (24.6 kB view details)

Uploaded Python 3

File details

Details for the file packyak-0.1.2.tar.gz.

File metadata

  • Download URL: packyak-0.1.2.tar.gz
  • Upload date:
  • Size: 18.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.11.6 Darwin/23.2.0

File hashes

Hashes for packyak-0.1.2.tar.gz
Algorithm Hash digest
SHA256 b93c473d09ad80410c48caef1c047f67ae3da56d83a02e5e754bf8c7e6e9cabe
MD5 9ab8c5bc7876d4f5c5ec0daf34b0f074
BLAKE2b-256 3ed69f4ee0c37bdc729cd67a05509345da9db581fb07c9e41038a01a39d72d2c

See more details on using hashes here.

File details

Details for the file packyak-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: packyak-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 24.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.11.6 Darwin/23.2.0

File hashes

Hashes for packyak-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 927c36220ad958909aa5afbd1127fd143a24bebe8191998a1df9076252495bd1
MD5 03d88d646cca71856c0946636f88ac45
BLAKE2b-256 1a0c17d2cbfe79630e2a3299e9119a51f37ebabccf060e9b2ee39e741e998437

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page