Skip to main content

generate fat wheel similar to fat jar in java

Project description

https://static.pepy.tech/personalized-badge/fat-wheel?period=month&units=international_system&left_color=black&right_color=orange&left_text=Downloads

Fat Wheel are basically wheels which include dependencies inside whl/tar/egg distribution similar in java we build a fat jar and run app from jar which have deps in inside the jar Fat Wheel try to solve to problems.

  1. you just build the fat-wheel and install and run it

  2. as dist have same deps inside when built and same deps install on use site

  3. share code and install deps when have no internet connection(which is not a problem today ;-))

Install

pip install fat-wheel

Usage

  1. BUILD FAT WHEEL

  • project_root_dir_path : required

  • pkg_name : required for fat wheel generation

  • version: optional/ default use setup.py version

fat <project_root_dir_path> --pkg_name <pkg.name> --version 1.0.0
<OR Shortcut>
fat <project_root_dir_path> -pn <pkg.name> --v 1.0.0
  • installation of fat-wheel cmd
    • pip install your-fat-wheel

    • install-<name-in-setup>

    • above cmd will install deps from local deps dir in your pkg

  • behind the scene for debugging
    • read fat-wheel.yaml to specify to files/folder to include <will add files/folder to include from .gitignore>

    • it will create project copy in build dir with dir name <project-name>-v<version>-<timestamp>

    • find fat wheel in dist/<version>/ folder

    • find deps folder in which contain all dowloaded deps and runner.py which install these deps

    • take a look at updated setup.py

  1. Build Options available

-pn PKG_NAME,
--pkg_name PKG_NAME
                      project pkg name (example|my.utils|my)
-v VERSION,
--version VERSION
                      set build version
-fb, --fat-build      create fat  source dist with all dependencies
-fw, --fat-wheel      build fat wheel with all dependencies

< --pkg_name, --version only work for fat option>

-b, --build           build source dist without dependencies
-w, --wheel           build wheel file without dependencies
-e, --egg             build egg file without dependencies

fat-wheel.yaml

include:
  - fat_wheel
  - setup.py
  - requirements.txt
  - doc
<sub folder also included>
<not supported below options>
pkg_name: fat_wheel
version: 1.2.2
build: wheel

not supported yet

  1. currently only support flat-layout means root pkg in project root dir

project-root-dir
 |
 |--pkg
 |   |--__init__.py
 |   |....
 |....
  1. fat egg file able to build error in install

  2. *still in development may or may not support it*

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

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

fat_wheel-1.5.5b0-py3-none-any.whl (13.5 kB view details)

Uploaded Python 3

File details

Details for the file fat_wheel-1.5.5b0-py3-none-any.whl.

File metadata

  • Download URL: fat_wheel-1.5.5b0-py3-none-any.whl
  • Upload date:
  • Size: 13.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.12

File hashes

Hashes for fat_wheel-1.5.5b0-py3-none-any.whl
Algorithm Hash digest
SHA256 a879ea1c10f3aefed7c98d018bb334974837bbac3dfae4a1374ec7745b2c7570
MD5 21b8b09bc66ac4a75c42dbbf4372838c
BLAKE2b-256 3ee08f18f87d8a78cf28f7cd980e3817baa75402369bd224dc7531ace2220ab5

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