Skip to main content

MIT Supply Chain Python Package

Project description

SCx

PyPI version License: MIT

MIT's Supply Chain Micromaster (SCx) Python Package

Documentation

Technical documentation can be found here.

Examples

Setup

Cloud Setup (Google Colab)

  • You can access google colab here
  • Create a new notebook
  • Install the scx package by adding the following to a new code cell at the top of your notebook and running it:
    • pip install scx

Local Setup

Make sure you have Python 3.11.x (or higher) installed on your system. You can download it here.

Recommended (but Optional) -> Expand this section to setup and activate a virtual environment.
  • Install (or upgrade) virtualenv:
python3 -m pip install --upgrade virtualenv
  • Create your virtualenv named venv:
python3 -m virtualenv venv
  • Activate your virtual environment
    • On Unix (Mac or Linux):
    source venv/bin/activate
    
    • On Windows:
    venv\\scripts\\activate
    
pip install scx

Optimization Getting Started

See all of the optimization examples here.

Basic Usage

from scx.optimize import Model

Simple Optimization

from scx.optimize import Model

# Create variables
product_1_amt = Model.variable(name="product_1", lowBound=0)
product_2_amt = Model.variable(name="product_2", lowBound=0)

# Initialize the model
my_model = Model(name="Generic_Problem", sense='maximize')

# Add the Objective Fn
my_model.add_objective(
    fn = (product_1_amt*1)+(product_2_amt*1)
)

# Add Constraints
my_model.add_constraint(
    name = 'input_1_constraint',
    fn = product_1_amt*1+product_2_amt*2 <= 100
)
my_model.add_constraint(
    name = 'input_2_constraint',
    fn = product_1_amt*3+product_2_amt*1 <= 200
)

# Solve the model
my_model.solve(get_duals=True, get_slacks=True)

# Show the outputs
# NOTE: outputs can be fetched directly as a dictionary with `my_model.get_outputs()`
my_model.show_outputs()

Outputs:

{'duals': {'input_1_constraint': 0.4, 'input_2_constraint': 0.2},
 'objective': 80.0,
 'slacks': {'input_1_constraint': -0.0, 'input_2_constraint': -0.0},
 'status': 'Optimal',
 'variables': {'product_1': 60.0, 'product_2': 20.0}}

Database Getting Started

See all of the database examples here

Basic Usage

from scx.database import Database
# Specify the S3 path to the data
data_folder = 's3://scx-dev/databases/supermarket/'
# Create the database
db = Database(f'''
    CREATE TABLE Customers AS SELECT * FROM read_parquet('{data_folder}customers.parquet');
''')
# Show the database Schema
db.show_info()

# Query the database
db.query("SELECT * FROM Customers LIMIT 5")

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

scx-1.3.0.tar.gz (9.6 kB view details)

Uploaded Source

Built Distribution

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

scx-1.3.0-py3-none-any.whl (10.5 kB view details)

Uploaded Python 3

File details

Details for the file scx-1.3.0.tar.gz.

File metadata

  • Download URL: scx-1.3.0.tar.gz
  • Upload date:
  • Size: 9.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for scx-1.3.0.tar.gz
Algorithm Hash digest
SHA256 75d40d80ee359c4638d45c2f1bad645a8cc0366717f9ec249378a3d21638c2c7
MD5 d33992c8d7dce7e3b2270f7ea3f7addb
BLAKE2b-256 98451f0180750d47989e172f1eb43053d63aaad0d838bea327d1d8901e4924e4

See more details on using hashes here.

File details

Details for the file scx-1.3.0-py3-none-any.whl.

File metadata

  • Download URL: scx-1.3.0-py3-none-any.whl
  • Upload date:
  • Size: 10.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for scx-1.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 406050c90f1a24a9d4334aa8e2004fd3b572364b1c5650b8800236f8397aae38
MD5 953a86e6d8b87202fa8f50a0c07d1fb4
BLAKE2b-256 c86dbface830e12d401b8bfd9eeca1c80b7abb517c3226307dedb27b9630f8d4

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