MIT Supply Chain Python Package
Project description
SCx
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
scxpackage 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
75d40d80ee359c4638d45c2f1bad645a8cc0366717f9ec249378a3d21638c2c7
|
|
| MD5 |
d33992c8d7dce7e3b2270f7ea3f7addb
|
|
| BLAKE2b-256 |
98451f0180750d47989e172f1eb43053d63aaad0d838bea327d1d8901e4924e4
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
406050c90f1a24a9d4334aa8e2004fd3b572364b1c5650b8800236f8397aae38
|
|
| MD5 |
953a86e6d8b87202fa8f50a0c07d1fb4
|
|
| BLAKE2b-256 |
c86dbface830e12d401b8bfd9eeca1c80b7abb517c3226307dedb27b9630f8d4
|