Skip to main content

Local development of server executed projects.

Project description

parcell

parcell helps you to keep your work on your machine even when it needs to be executed remotely. This is done by sending your project’s code to one of your beefy worker servers, running the code, and sending the results back. Multiple tasks can be run in parallel and on different servers to balance the load. You can keep improving your code on your machine without lag and get notified when submitted tasks have been completed. No setup on the server side is required.

Getting started

Install the project via:

pip install parcell

Then start parcell for the first time in the working directory of your choice:

parcell

Note that parcell uses your current working directory to locate your projects and servers so make sure you are in the same directory every time you start it. After starting parcell browses to http://localhost:8000/parcell/. You should see an empty “Select project” screen. Stop parcell by typing quit in the terminal or pressing CTRL-C. Add projects and servers as shown below. Then start the server again. If everything worked you should see your projects.

Adding a server

Locate the servers folder in your working directory. Add a file SERVERNAME.json describing your server:

{
  "hostname": "server1.foobar.com", // the server you want to access
  "username": "joe", // your username on the server
  "needs_pw": true, // whether you need to type a password to connect
  "tunnel": "joe@connect.foobar.com", // optional server for tunneling the connection
  "tunnel_port": 11111, // local port to tunnel through (only if tunneling) -- must be unique for each server
  "needs_tunnel_pw": true  // whether you need to type a password to tunnel (only if tunneling)
}

Note that JSON cannot contain comments!

It is recommended to restart parcell (e.g., by typing restart) after adding new servers. If all your servers have the same password you can start parcell with python server.py --reuse-pw to only type one password.

Setting up a project

Locate the projects folder in your parcell directory. Add a file PROJECTNAME.json describing your project:

{
  "local": "~/projects/awesome", // the path to your local project folder (note that all contents of this folder and subfolders will be copied onto the server)
  "cmd": "python run.py", // the command that runs your project
  "env": "linux", // the server environment (located in the env/ folder)
  "servers": [ // a list of servers (the SERVERNAME of the server description)
    "server1",
    "server2",
    "server3"
  ]
}

Note that JSON cannot contain comments!

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

parcell-0.1.0.tar.gz (872.1 kB view details)

Uploaded Source

Built Distribution

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

parcell-0.1.0-py2-none-any.whl (893.3 kB view details)

Uploaded Python 2

File details

Details for the file parcell-0.1.0.tar.gz.

File metadata

  • Download URL: parcell-0.1.0.tar.gz
  • Upload date:
  • Size: 872.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for parcell-0.1.0.tar.gz
Algorithm Hash digest
SHA256 0d964b97bef4811033db1340661de1e745a65e726e8198a0c9a0671c0e1f8dbc
MD5 96b240106e6c5d3655fd49de6b8bc329
BLAKE2b-256 9d74477bd611eeef6716023504896001864e22d32cec224f7aa35c01fd414e38

See more details on using hashes here.

File details

Details for the file parcell-0.1.0-py2-none-any.whl.

File metadata

File hashes

Hashes for parcell-0.1.0-py2-none-any.whl
Algorithm Hash digest
SHA256 3b1f0dfbc87b95e5bd6cc320f64b030189c9e0fa5b8a57b27072ce3db6302e3c
MD5 891b526de1670ab71f9df47280ce008c
BLAKE2b-256 e991bd6ea1831eaa02f104834d45542fa4c8a483db08c4974ddc7a97c2ac3ac7

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