Skip to main content

Turn python function into microservice.

Project description

Workcell

Instantly turn your Python function into production-ready microservice.

website discord

English | 简体中文

Getting StartedLicenseChangelog

Instantly turn your Python function into delightful app and production-ready microservice, with lightweight UI to interact with.


⚡ Highlights

  • 🔌 Instantly turn functions into microservices within seconds.
  • 📈 Automatically generate user-friendly UI for interaction.
  • 🤗 One-click deployment to Hugging Face Spaces.
  • ☁️ Develop locally, deploy to the cloud.
  • 🧩 Empower development and analysis with scalable components.
  • 🦄 Get inspired by the open-source community.

⏰ Status

Status Stability Goal
Alpha We are testing Workcell with a closed set of customers
Public Alpha Anyone can sign up over at weanalyze.co. But go easy on us, there are a few kinks.
🚧 Public Beta Stable enough for most non-enterprise use-cases
Public Production-ready

We are currently in: Public Alpha.

Wokrlcell is heavily under development, and we expect to iterate on the APIs/UIs before reaching beta (version 0.1.0).

🔖 Installation

  • Python version 3.8+

  • Install Workcell using pip:

    pip install workcell
    
  • Or using Anaconda:

    conda install workcell
    

🚀 Quick Start

  • After workcell installed, just run:

    workcell hello
    
  • You can find an automatically generated Swagger UI from http://127.0.0.1:7860/docs, then just goto http://127.0.0.1:7860/ui to try your first workcell app:)

📚 Guide

  • What happened?

    Workcell has created a FastAPI service and a lightweight user interface for your functions without any additional API or UI-related code. This service is ready to be deployed to the cloud as a public service, requiring minimal setup on your end.

  • Speed up your development

    With Workcell, you can focus on developing your core functionality while leaving the infrastructure and deployment details to the platform. All you need is to make sure your function is workcell compatible.

  • Workcell compatible

    A workcell-compatible function must have an input and output parameter and return value based on Pydantic models. The input and output are specified using type hints.

    Here is an example of a simple workcell compatible function:

    from pydantic import BaseModel
    
    class Input(BaseModel):
        message: str
    
    class Output(BaseModel):
        message: str
    
    def hello_workcell(input: Input) -> Output:
        """Returns the `message` of the input data."""
        return Output(message=input.message)
    

🤗 Deployment

  • Why deployment?

    You'll be able to access your workcell from anywhere and share it with your team and collaborators. Now you can deploy workcell to Hugging Face Spaces in 1-click!

  • Prepare your Hugging Face account

    First you need a Hugging Face account, and prepare a User Access Tokens, then set environment variables like below:

    export HUGGINGFACE_USERNAME={huggingface_username}
    export HUGGINGFACE_TOKEN={huggingface_token}
    

    Replace {huggingface_username} and {huggingface_token} with yours.

    You can also store these environment variables in a .env file in your project folder for convenience.

  • Deploy in 1-click!

    Once you prepared a workcell compatible function (or project), just run:

    workcell up app:hello_workcell
    

    Voila! The deployment process will start, and within a few minutes, workcell will be available on your Hugging Face Spaces.

  • Extra explain

    When you run workcell up, there're actually 2 seperate step workcell pack and workcell deploy been applied. workcell pack will package your function code with a template into .workcell under your project folder, and workcell deploy will upload this folder to cloud.

📖 Documents

  • You can find more details in our documents.

🎮 Examples

🛣️ Roadmap

  • Missing a feature? Have a look at our public roadmap to see what the team is working on in the short and medium term. Still missing it? Please let us know by opening an issue!

😆 Contacts

License

Apache-2.0 License.

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

workcell-0.0.38.tar.gz (45.2 kB view details)

Uploaded Source

Built Distribution

workcell-0.0.38-py3-none-any.whl (57.5 kB view details)

Uploaded Python 3

File details

Details for the file workcell-0.0.38.tar.gz.

File metadata

  • Download URL: workcell-0.0.38.tar.gz
  • Upload date:
  • Size: 45.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.4.2 CPython/3.8.16 Linux/5.15.0-1035-azure

File hashes

Hashes for workcell-0.0.38.tar.gz
Algorithm Hash digest
SHA256 c295a9143a32266781ff0663de249db8ff09bf774a3e4487727f2740a1919c93
MD5 0194806ab8576be711cce68b7d4299e1
BLAKE2b-256 7a4f3fd4f4801ca98978ea2600163622f231f4dc77a19fa8d11ca654f1bf4186

See more details on using hashes here.

File details

Details for the file workcell-0.0.38-py3-none-any.whl.

File metadata

  • Download URL: workcell-0.0.38-py3-none-any.whl
  • Upload date:
  • Size: 57.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.4.2 CPython/3.8.16 Linux/5.15.0-1035-azure

File hashes

Hashes for workcell-0.0.38-py3-none-any.whl
Algorithm Hash digest
SHA256 45870c62f05d92df01e7387e13f47e8e1e1925ca5fe004fdc4b66bc4a0e654b1
MD5 e52e0b9b199a2b4c779bd82805ac3499
BLAKE2b-256 987dd45888a66b953483ddcf8a3f384a8b111770151d45cf7265b929dbb99662

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