Skip to main content

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")

Metadata

Release files for scx 1.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for scx 1.3.0
File Size Uploaded
scx-1.3.0.tar.gz 9.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for scx 1.3.0
File Interpreter ABI Platform
scx-1.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 20.1 kB

Release files / scx-1.3.0.tar.gz

Download URL scx-1.3.0.tar.gz
Size 9.6 kB
Tags Source
SHA-256 checksum
How to use checksums
75d40d80ee359c4638d45c2f1bad645a8cc0366717f9ec249378a3d21638c2c7
BLAKE2b-256 checksum
How to use checksums
98451f0180750d47989e172f1eb43053d63aaad0d838bea327d1d8901e4924e4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / scx-1.3.0-py3-none-any.whl

Download URL scx-1.3.0-py3-none-any.whl
Size 10.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
406050c90f1a24a9d4334aa8e2004fd3b572364b1c5650b8800236f8397aae38
BLAKE2b-256 checksum
How to use checksums
c86dbface830e12d401b8bfd9eeca1c80b7abb517c3226307dedb27b9630f8d4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release history Release notifications | RSS feed

This release

1.3.0 This release

2 release files

1.2.1

2 release files

1.2.0

2 release files

1.1.0

2 release files

1.0.7

1 release file

1.0.6

1 release file

1.0.5

1 release file

1.0.4

1 release file

1.0.3

1 release file

1.0.2

1 release file

1.0.1

1 release file

1.0.0

1 release file

0.0.3

1 release file

0.0.2

1 release file

0.0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page