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
scx-1.3.0.tar.gz
(9.6 kB
view details)
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
scx-1.3.0-py3-none-any.whl
(10.5 kB
view details)
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
|