Skip to main content

Unofficial AWS Glue Ray.io packaging tool. Pure python or cross platform.

Project description

raypack

Raypack will create a package for AWS Glue, Ray.io tasks. This automates this documentation page that has some handwavy descriptions of shell commands.

If you are only using included-by-default packages, public packages, pure python packages, binary wheel packages, you don't have to do this.

AWS Glue can't handle anything without a binary wheel or private package repositories, gcc or other build tools are not in Glue runtime images.

So you have build on a machine that matches the AWS runtime OS (Fedora-like), create a virtual directory, and then zip it up and upload it to s3.

Some code generate with ChatGPT (OpenAI)

raypack is not supported by Amazon, AWS, nor Anyscale, Inc the makers of ray.io.

Libraries.io dependency status for latest release Downloads

Installation

You are encouraged to install with pipx so that the CLI tools dependencies do not conflict with your project dependencies.

pipx install raypack

Capabilities

Usage

raypack
python -m raypack

Configuration. If none specified, defaults are as below.

[tool.raypack]
exclude_packaging_cruft = true
outer_folder_name = "venv"
source_venv = ".venv"
venv_tool = "poetry"

How it works

  1. Gather info from pyproject.toml or CLI args, but not both.
  2. Create a local .venv and .whl using poetry.
  3. Create a new zip file with an extra top level folder.
  4. Find the site-packages folder and copy to a new zip
  5. Find the module contents in .whl and copy to a new zip
  6. Upload to s3
  7. Use s3 py modules "--s3-py-modules", "s3://s3bucket/pythonPackage.zip"

Contributing

To install and run tests and linting tools.

poetry install --with dev
make check

To see if the app can package up other apps

poetry build
# exist poetry shell so that pipx can install with the right base python
exit 
pipx install /e/github/raypack/dist/raypack-0.1.0-py3-none-any.whl

And then in a different project with a pyproject.toml file, run

raypack

Prior Art

Random scripts in comments

Some make file script

Similar to PEX or other venv zip tools, which as far as I know are not AWS aware, or they don't include all the dependencies, or they are more interested in making the archive file executable or self-extracting.

AWS Lambdas also have to go through a similar ad hoc zip process.

Documentation

Change Log

  • 0.1.0 - Idea and reserve package name.

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

raypack-0.3.20.tar.gz (12.8 kB view details)

Uploaded Source

Built Distribution

raypack-0.3.20-py3-none-any.whl (13.5 kB view details)

Uploaded Python 3

File details

Details for the file raypack-0.3.20.tar.gz.

File metadata

  • Download URL: raypack-0.3.20.tar.gz
  • Upload date:
  • Size: 12.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.6

File hashes

Hashes for raypack-0.3.20.tar.gz
Algorithm Hash digest
SHA256 37049ab8365c121137d761b587e3ec3d40cee99f102e913df0782c17ed4cd40b
MD5 0c9babee4c534dbfda95f9e5515ca309
BLAKE2b-256 c797f83a3d40ebd55001b11ffafbb1d9f2a04f5084020370c3420c78470d1326

See more details on using hashes here.

File details

Details for the file raypack-0.3.20-py3-none-any.whl.

File metadata

  • Download URL: raypack-0.3.20-py3-none-any.whl
  • Upload date:
  • Size: 13.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.6

File hashes

Hashes for raypack-0.3.20-py3-none-any.whl
Algorithm Hash digest
SHA256 3730cc7abf776022e2a2d6eff5fe90db7fa8002e278ef4d8350a489984ed2af3
MD5 3f808fa398add8c3b3be1a375d3b0910
BLAKE2b-256 c8c45eb2dce0277683e6a713b4d30a7a9ac95e7a6d917545b3cd7fc47f39726d

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