supplycm 1.2.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- supplycm-1.2.1/CHANGELOG.md +135 -0
- supplycm-1.2.1/CODE_OF_CONDUCT.md +39 -0
- supplycm-1.2.1/COMMUNITY.md +70 -0
- supplycm-1.2.1/CONTRIBUTING.md +81 -0
- supplycm-1.2.1/LICENSE +21 -0
- supplycm-1.2.1/MANIFEST.in +13 -0
- supplycm-1.2.1/PKG-INFO +138 -0
- supplycm-1.2.1/README.md +114 -0
- supplycm-1.2.1/SECURITY.md +34 -0
- supplycm-1.2.1/examples/__init__.py +1 -0
- supplycm-1.2.1/examples/forecasting_tutorial.py +75 -0
- supplycm-1.2.1/examples/inventory_tutorial.py +92 -0
- supplycm-1.2.1/examples/multi_echelon_tutorial.py +54 -0
- supplycm-1.2.1/examples/optimization_tutorial.py +76 -0
- supplycm-1.2.1/examples/routing_tutorial.py +81 -0
- supplycm-1.2.1/examples/supplier_selection_example.py +96 -0
- supplycm-1.2.1/pyproject.toml +26 -0
- supplycm-1.2.1/setup.cfg +4 -0
- supplycm-1.2.1/setup.py +38 -0
- supplycm-1.2.1/supplycm/__init__.py +34 -0
- supplycm-1.2.1/supplycm/blockchain/__init__.py +6 -0
- supplycm-1.2.1/supplycm/blockchain/hash_chain.py +35 -0
- supplycm-1.2.1/supplycm/blockchain/provenance_tracking.py +27 -0
- supplycm-1.2.1/supplycm/blockchain/smart_contract_check.py +42 -0
- supplycm-1.2.1/supplycm/blockchain/verify_chain.py +32 -0
- supplycm-1.2.1/supplycm/contracts/__init__.py +5 -0
- supplycm-1.2.1/supplycm/contracts/buyback_contract.py +28 -0
- supplycm-1.2.1/supplycm/contracts/quantity_flexibility_contract.py +28 -0
- supplycm-1.2.1/supplycm/contracts/revenue_sharing_contract.py +26 -0
- supplycm-1.2.1/supplycm/cost/__init__.py +4 -0
- supplycm-1.2.1/supplycm/cost/landed_cost.py +19 -0
- supplycm-1.2.1/supplycm/cost/total_cost_procurement.py +14 -0
- supplycm-1.2.1/supplycm/demand/__init__.py +10 -0
- supplycm-1.2.1/supplycm/demand/cannibalization_effect.py +16 -0
- supplycm-1.2.1/supplycm/demand/demand_aggregation.py +17 -0
- supplycm-1.2.1/supplycm/demand/demand_class_abc_xyz.py +20 -0
- supplycm-1.2.1/supplycm/demand/demand_disaggregation.py +17 -0
- supplycm-1.2.1/supplycm/demand/demand_sensing.py +21 -0
- supplycm-1.2.1/supplycm/demand/promotional_demand_lift.py +14 -0
- supplycm-1.2.1/supplycm/demand/seasonality_index.py +23 -0
- supplycm-1.2.1/supplycm/demand/stockout_demand_loss.py +15 -0
- supplycm-1.2.1/supplycm/demand/trend_seasonal_decomposition_forecast.py +55 -0
- supplycm-1.2.1/supplycm/forecasting/__init__.py +51 -0
- supplycm-1.2.1/supplycm/forecasting/adf_test.py +32 -0
- supplycm-1.2.1/supplycm/forecasting/akaike_information_criterion.py +22 -0
- supplycm-1.2.1/supplycm/forecasting/ar_model.py +40 -0
- supplycm-1.2.1/supplycm/forecasting/autocorrelation.py +25 -0
- supplycm-1.2.1/supplycm/forecasting/average_method.py +15 -0
- supplycm-1.2.1/supplycm/forecasting/bates_granger_combination.py +37 -0
- supplycm-1.2.1/supplycm/forecasting/bayesian_information_criterion.py +19 -0
- supplycm-1.2.1/supplycm/forecasting/bottom_up_reconciliation.py +36 -0
- supplycm-1.2.1/supplycm/forecasting/box_cox_transform.py +20 -0
- supplycm-1.2.1/supplycm/forecasting/brier_score.py +17 -0
- supplycm-1.2.1/supplycm/forecasting/browns_double_exponential.py +25 -0
- supplycm-1.2.1/supplycm/forecasting/browns_triple_exponential.py +33 -0
- supplycm-1.2.1/supplycm/forecasting/classical_decomposition.py +70 -0
- supplycm-1.2.1/supplycm/forecasting/croston_with_decay.py +24 -0
- supplycm-1.2.1/supplycm/forecasting/crostons_method.py +46 -0
- supplycm-1.2.1/supplycm/forecasting/dampened_trend.py +44 -0
- supplycm-1.2.1/supplycm/forecasting/doubling_seasonal_smoothing.py +34 -0
- supplycm-1.2.1/supplycm/forecasting/drift_method.py +16 -0
- supplycm-1.2.1/supplycm/forecasting/exponential_trend_forecast.py +30 -0
- supplycm-1.2.1/supplycm/forecasting/gompertz_trend.py +42 -0
- supplycm-1.2.1/supplycm/forecasting/holt_linear_trend.py +36 -0
- supplycm-1.2.1/supplycm/forecasting/holt_winters.py +56 -0
- supplycm-1.2.1/supplycm/forecasting/hurst_exponent.py +53 -0
- supplycm-1.2.1/supplycm/forecasting/inverse_box_cox.py +15 -0
- supplycm-1.2.1/supplycm/forecasting/kpss_test.py +28 -0
- supplycm-1.2.1/supplycm/forecasting/linear_regression_forecast.py +33 -0
- supplycm-1.2.1/supplycm/forecasting/ljung_box_test.py +25 -0
- supplycm-1.2.1/supplycm/forecasting/logistic_trend.py +44 -0
- supplycm-1.2.1/supplycm/forecasting/ma_model.py +40 -0
- supplycm-1.2.1/supplycm/forecasting/moving_median_filter.py +26 -0
- supplycm-1.2.1/supplycm/forecasting/mstl_decomposition.py +43 -0
- supplycm-1.2.1/supplycm/forecasting/naive_forecast.py +14 -0
- supplycm-1.2.1/supplycm/forecasting/partial_autocorrelation.py +41 -0
- supplycm-1.2.1/supplycm/forecasting/pegels_classification.py +37 -0
- supplycm-1.2.1/supplycm/forecasting/polynomial_regression_forecast.py +48 -0
- supplycm-1.2.1/supplycm/forecasting/rolling_mean_forecast.py +18 -0
- supplycm-1.2.1/supplycm/forecasting/sba_method.py +43 -0
- supplycm-1.2.1/supplycm/forecasting/seasonal_indices.py +30 -0
- supplycm-1.2.1/supplycm/forecasting/seasonal_naive_forecast.py +20 -0
- supplycm-1.2.1/supplycm/forecasting/seasonal_trend_loess.py +45 -0
- supplycm-1.2.1/supplycm/forecasting/ses_with_drift.py +24 -0
- supplycm-1.2.1/supplycm/forecasting/simple_moving_average.py +29 -0
- supplycm-1.2.1/supplycm/forecasting/single_exponential_smoothing.py +28 -0
- supplycm-1.2.1/supplycm/forecasting/theils_u.py +20 -0
- supplycm-1.2.1/supplycm/forecasting/theta_method.py +42 -0
- supplycm-1.2.1/supplycm/forecasting/top_down_reconciliation.py +21 -0
- supplycm-1.2.1/supplycm/forecasting/tracking_signal.py +24 -0
- supplycm-1.2.1/supplycm/forecasting/tsb_method.py +34 -0
- supplycm-1.2.1/supplycm/forecasting/var_model.py +64 -0
- supplycm-1.2.1/supplycm/forecasting/weighted_moving_average.py +35 -0
- supplycm-1.2.1/supplycm/inventory/__init__.py +61 -0
- supplycm-1.2.1/supplycm/inventory/abc_analysis.py +34 -0
- supplycm-1.2.1/supplycm/inventory/abc_xyz_matrix.py +21 -0
- supplycm-1.2.1/supplycm/inventory/aging_schedule.py +29 -0
- supplycm-1.2.1/supplycm/inventory/anticipation_inventory.py +19 -0
- supplycm-1.2.1/supplycm/inventory/base_stock_policy.py +18 -0
- supplycm-1.2.1/supplycm/inventory/bullwhip_effect.py +24 -0
- supplycm-1.2.1/supplycm/inventory/cycle_service_level.py +16 -0
- supplycm-1.2.1/supplycm/inventory/days_of_supply.py +13 -0
- supplycm-1.2.1/supplycm/inventory/dead_stock_identification.py +17 -0
- supplycm-1.2.1/supplycm/inventory/decoupling_inventory.py +12 -0
- supplycm-1.2.1/supplycm/inventory/demand_during_lead_time.py +13 -0
- supplycm-1.2.1/supplycm/inventory/economic_order_quantity.py +35 -0
- supplycm-1.2.1/supplycm/inventory/economic_production_quantity.py +21 -0
- supplycm-1.2.1/supplycm/inventory/eoq_quantity_discount.py +42 -0
- supplycm-1.2.1/supplycm/inventory/eoq_with_backorders.py +16 -0
- supplycm-1.2.1/supplycm/inventory/expected_backorder.py +19 -0
- supplycm-1.2.1/supplycm/inventory/expected_on_hand.py +13 -0
- supplycm-1.2.1/supplycm/inventory/fifo_valuation.py +34 -0
- supplycm-1.2.1/supplycm/inventory/fill_rate_calculation.py +27 -0
- supplycm-1.2.1/supplycm/inventory/fixed_order_quantity.py +26 -0
- supplycm-1.2.1/supplycm/inventory/gmroi.py +13 -0
- supplycm-1.2.1/supplycm/inventory/holding_cost_calculation.py +11 -0
- supplycm-1.2.1/supplycm/inventory/inventory_carrying_rate.py +14 -0
- supplycm-1.2.1/supplycm/inventory/inventory_position.py +11 -0
- supplycm-1.2.1/supplycm/inventory/inventory_to_sales_ratio.py +13 -0
- supplycm-1.2.1/supplycm/inventory/inventory_turnover_ratio.py +13 -0
- supplycm-1.2.1/supplycm/inventory/joint_replenishment.py +27 -0
- supplycm-1.2.1/supplycm/inventory/least_period_cost.py +34 -0
- supplycm-1.2.1/supplycm/inventory/least_unit_cost.py +34 -0
- supplycm-1.2.1/supplycm/inventory/lifo_valuation.py +26 -0
- supplycm-1.2.1/supplycm/inventory/lot_for_lot.py +14 -0
- supplycm-1.2.1/supplycm/inventory/marginal_analysis_newsvendor.py +32 -0
- supplycm-1.2.1/supplycm/inventory/multi_echelon_inventory.py +36 -0
- supplycm-1.2.1/supplycm/inventory/newsvendor_model.py +40 -0
- supplycm-1.2.1/supplycm/inventory/obsolescence_cost.py +14 -0
- supplycm-1.2.1/supplycm/inventory/optimal_stockout_probability.py +19 -0
- supplycm-1.2.1/supplycm/inventory/ordering_cost_allocation.py +15 -0
- supplycm-1.2.1/supplycm/inventory/part_period_balancing.py +35 -0
- supplycm-1.2.1/supplycm/inventory/periodic_order_quantity.py +30 -0
- supplycm-1.2.1/supplycm/inventory/periodic_review_policy.py +20 -0
- supplycm-1.2.1/supplycm/inventory/perishable_inventory.py +32 -0
- supplycm-1.2.1/supplycm/inventory/pipeline_inventory.py +13 -0
- supplycm-1.2.1/supplycm/inventory/r_q_policy.py +30 -0
- supplycm-1.2.1/supplycm/inventory/reorder_point.py +13 -0
- supplycm-1.2.1/supplycm/inventory/risk_pooling.py +25 -0
- supplycm-1.2.1/supplycm/inventory/s_s_policy.py +31 -0
- supplycm-1.2.1/supplycm/inventory/safety_stock_normal.py +14 -0
- supplycm-1.2.1/supplycm/inventory/safety_stock_with_lead_time_var.py +16 -0
- supplycm-1.2.1/supplycm/inventory/silver_meal.py +34 -0
- supplycm-1.2.1/supplycm/inventory/slow_moving_detection.py +21 -0
- supplycm-1.2.1/supplycm/inventory/spare_parts_fsn.py +24 -0
- supplycm-1.2.1/supplycm/inventory/spare_parts_hml.py +18 -0
- supplycm-1.2.1/supplycm/inventory/spare_parts_sde.py +18 -0
- supplycm-1.2.1/supplycm/inventory/spare_parts_ved.py +18 -0
- supplycm-1.2.1/supplycm/inventory/square_root_law.py +17 -0
- supplycm-1.2.1/supplycm/inventory/stockout_cost.py +13 -0
- supplycm-1.2.1/supplycm/inventory/vendor_managed_inventory.py +16 -0
- supplycm-1.2.1/supplycm/inventory/wagner_whitin.py +42 -0
- supplycm-1.2.1/supplycm/inventory/weighted_average_cost.py +16 -0
- supplycm-1.2.1/supplycm/inventory/xyz_analysis.py +30 -0
- supplycm-1.2.1/supplycm/iot/__init__.py +6 -0
- supplycm-1.2.1/supplycm/iot/anomaly_detection.py +33 -0
- supplycm-1.2.1/supplycm/iot/iot_data_aggregation.py +52 -0
- supplycm-1.2.1/supplycm/iot/realtime_inventory_monitor.py +44 -0
- supplycm-1.2.1/supplycm/iot/sensor_data_smoothing.py +27 -0
- supplycm-1.2.1/supplycm/lean/__init__.py +6 -0
- supplycm-1.2.1/supplycm/lean/cycle_time_efficiency.py +13 -0
- supplycm-1.2.1/supplycm/lean/oee.py +11 -0
- supplycm-1.2.1/supplycm/lean/takt_time.py +13 -0
- supplycm-1.2.1/supplycm/lean/wip_calculation.py +13 -0
- supplycm-1.2.1/supplycm/mrp/__init__.py +31 -0
- supplycm-1.2.1/supplycm/mrp/available_to_promise.py +35 -0
- supplycm-1.2.1/supplycm/mrp/backflush.py +17 -0
- supplycm-1.2.1/supplycm/mrp/bom_explosion.py +29 -0
- supplycm-1.2.1/supplycm/mrp/capable_to_promise.py +33 -0
- supplycm-1.2.1/supplycm/mrp/capacity_requirements_planning.py +36 -0
- supplycm-1.2.1/supplycm/mrp/cycle_counting.py +28 -0
- supplycm-1.2.1/supplycm/mrp/demand_time_fence.py +15 -0
- supplycm-1.2.1/supplycm/mrp/drum_buffer_rope.py +27 -0
- supplycm-1.2.1/supplycm/mrp/kaban_sizing.py +16 -0
- supplycm-1.2.1/supplycm/mrp/lead_time_offsetting.py +19 -0
- supplycm-1.2.1/supplycm/mrp/lot_size_rule_epr.py +29 -0
- supplycm-1.2.1/supplycm/mrp/lot_size_rule_foq.py +19 -0
- supplycm-1.2.1/supplycm/mrp/lot_size_rule_l4l.py +12 -0
- supplycm-1.2.1/supplycm/mrp/lot_size_rule_poq.py +18 -0
- supplycm-1.2.1/supplycm/mrp/low_level_coding.py +32 -0
- supplycm-1.2.1/supplycm/mrp/master_production_schedule.py +28 -0
- supplycm-1.2.1/supplycm/mrp/maximum_order_quantity.py +23 -0
- supplycm-1.2.1/supplycm/mrp/minimum_order_quantity.py +12 -0
- supplycm-1.2.1/supplycm/mrp/modular_bom.py +25 -0
- supplycm-1.2.1/supplycm/mrp/mrp_calculation.py +44 -0
- supplycm-1.2.1/supplycm/mrp/order_multiples.py +15 -0
- supplycm-1.2.1/supplycm/mrp/pegging.py +27 -0
- supplycm-1.2.1/supplycm/mrp/phantom_bom_handling.py +26 -0
- supplycm-1.2.1/supplycm/mrp/planning_bom.py +13 -0
- supplycm-1.2.1/supplycm/mrp/planning_time_fence.py +26 -0
- supplycm-1.2.1/supplycm/mrp/quantity_discount_mrp.py +23 -0
- supplycm-1.2.1/supplycm/mrp/rough_cut_capacity_planning.py +33 -0
- supplycm-1.2.1/supplycm/mrp/safety_lead_time.py +14 -0
- supplycm-1.2.1/supplycm/mrp/shrinkage_factor.py +14 -0
- supplycm-1.2.1/supplycm/mrp/where_used_query.py +24 -0
- supplycm-1.2.1/supplycm/network/__init__.py +30 -0
- supplycm-1.2.1/supplycm/network/a_star_search.py +29 -0
- supplycm-1.2.1/supplycm/network/all_pairs_shortest_path.py +32 -0
- supplycm-1.2.1/supplycm/network/articulation_points.py +39 -0
- supplycm-1.2.1/supplycm/network/bellman_ford.py +36 -0
- supplycm-1.2.1/supplycm/network/betweenness_centrality.py +43 -0
- supplycm-1.2.1/supplycm/network/bfs_shortest_path.py +23 -0
- supplycm-1.2.1/supplycm/network/bidirectional_search.py +57 -0
- supplycm-1.2.1/supplycm/network/bipartite_matching.py +28 -0
- supplycm-1.2.1/supplycm/network/bridges_in_graph.py +32 -0
- supplycm-1.2.1/supplycm/network/closeness_centrality.py +3 -0
- supplycm-1.2.1/supplycm/network/connected_components.py +26 -0
- supplycm-1.2.1/supplycm/network/degree_centrality.py +15 -0
- supplycm-1.2.1/supplycm/network/dfs_traversal.py +25 -0
- supplycm-1.2.1/supplycm/network/dijkstra_shortest_path.py +41 -0
- supplycm-1.2.1/supplycm/network/edmonds_karp_max_flow.py +43 -0
- supplycm-1.2.1/supplycm/network/eigenvector_centrality.py +30 -0
- supplycm-1.2.1/supplycm/network/floyd_warshall.py +20 -0
- supplycm-1.2.1/supplycm/network/ford_fulkerson_max_flow.py +34 -0
- supplycm-1.2.1/supplycm/network/kruskal_mst.py +41 -0
- supplycm-1.2.1/supplycm/network/max_weight_bipartite_matching.py +17 -0
- supplycm-1.2.1/supplycm/network/maximal_clique_bron_kerbosch.py +24 -0
- supplycm-1.2.1/supplycm/network/min_cost_flow_cycle_canceling.py +67 -0
- supplycm-1.2.1/supplycm/network/min_cut_max_flow_theorem.py +57 -0
- supplycm-1.2.1/supplycm/network/min_cut_stoer_wagner.py +54 -0
- supplycm-1.2.1/supplycm/network/min_weight_bipartite_matching.py +14 -0
- supplycm-1.2.1/supplycm/network/page_rank.py +35 -0
- supplycm-1.2.1/supplycm/network/prim_mst.py +31 -0
- supplycm-1.2.1/supplycm/network/strongly_connected_components.py +43 -0
- supplycm-1.2.1/supplycm/network/successive_shortest_path.py +69 -0
- supplycm-1.2.1/supplycm/network/topological_sort.py +26 -0
- supplycm-1.2.1/supplycm/network_design/__init__.py +7 -0
- supplycm-1.2.1/supplycm/network_design/break_even_analysis.py +23 -0
- supplycm-1.2.1/supplycm/network_design/center_of_gravity.py +24 -0
- supplycm-1.2.1/supplycm/network_design/facility_location_fixed_cost.py +48 -0
- supplycm-1.2.1/supplycm/network_design/network_reliability.py +27 -0
- supplycm-1.2.1/supplycm/network_design/single_source_allocation.py +42 -0
- supplycm-1.2.1/supplycm/optimization/__init__.py +31 -0
- supplycm-1.2.1/supplycm/optimization/ant_colony_optimization.py +62 -0
- supplycm-1.2.1/supplycm/optimization/bin_packing_best_fit.py +26 -0
- supplycm-1.2.1/supplycm/optimization/bin_packing_first_fit.py +23 -0
- supplycm-1.2.1/supplycm/optimization/bin_packing_first_fit_decreasing.py +15 -0
- supplycm-1.2.1/supplycm/optimization/binary_search.py +21 -0
- supplycm-1.2.1/supplycm/optimization/branch_and_bound.py +47 -0
- supplycm-1.2.1/supplycm/optimization/convex_hull.py +28 -0
- supplycm-1.2.1/supplycm/optimization/dynamic_programming_lcs.py +31 -0
- supplycm-1.2.1/supplycm/optimization/edit_distance.py +24 -0
- supplycm-1.2.1/supplycm/optimization/fractional_knapsack.py +29 -0
- supplycm-1.2.1/supplycm/optimization/genetic_algorithm.py +42 -0
- supplycm-1.2.1/supplycm/optimization/golden_section_search.py +28 -0
- supplycm-1.2.1/supplycm/optimization/gradient_descent.py +33 -0
- supplycm-1.2.1/supplycm/optimization/graph_coloring_greedy.py +23 -0
- supplycm-1.2.1/supplycm/optimization/heap_sort.py +15 -0
- supplycm-1.2.1/supplycm/optimization/knapsack_01_dp.py +36 -0
- supplycm-1.2.1/supplycm/optimization/lagrange_multiplier.py +33 -0
- supplycm-1.2.1/supplycm/optimization/longest_increasing_subsequence.py +22 -0
- supplycm-1.2.1/supplycm/optimization/matrix_chain_multiplication.py +22 -0
- supplycm-1.2.1/supplycm/optimization/merge_sort.py +30 -0
- supplycm-1.2.1/supplycm/optimization/n_queens_backtracking.py +29 -0
- supplycm-1.2.1/supplycm/optimization/newton_raphson.py +22 -0
- supplycm-1.2.1/supplycm/optimization/p_median.py +29 -0
- supplycm-1.2.1/supplycm/optimization/particle_swarm_optimization.py +54 -0
- supplycm-1.2.1/supplycm/optimization/quick_sort.py +18 -0
- supplycm-1.2.1/supplycm/optimization/set_cover_greedy.py +23 -0
- supplycm-1.2.1/supplycm/optimization/simplex_method.py +63 -0
- supplycm-1.2.1/supplycm/optimization/simulated_annealing.py +40 -0
- supplycm-1.2.1/supplycm/optimization/subset_sum.py +20 -0
- supplycm-1.2.1/supplycm/optimization/tabu_search.py +45 -0
- supplycm-1.2.1/supplycm/quality/__init__.py +9 -0
- supplycm-1.2.1/supplycm/quality/dpmo.py +13 -0
- supplycm-1.2.1/supplycm/quality/p_chart.py +25 -0
- supplycm-1.2.1/supplycm/quality/process_capability_cp.py +14 -0
- supplycm-1.2.1/supplycm/quality/process_capability_cpk.py +16 -0
- supplycm-1.2.1/supplycm/quality/r_chart.py +23 -0
- supplycm-1.2.1/supplycm/quality/sigma_level.py +20 -0
- supplycm-1.2.1/supplycm/quality/x_bar_chart.py +30 -0
- supplycm-1.2.1/supplycm/risk/__init__.py +2 -0
- supplycm-1.2.1/supplycm/risk/supply_chain_resilience_index.py +23 -0
- supplycm-1.2.1/supplycm/routing/__init__.py +31 -0
- supplycm-1.2.1/supplycm/routing/assignment_problem_hungarian.py +70 -0
- supplycm-1.2.1/supplycm/routing/chinese_postman.py +59 -0
- supplycm-1.2.1/supplycm/routing/dial_a_ride.py +38 -0
- supplycm-1.2.1/supplycm/routing/eulerian_tour.py +26 -0
- supplycm-1.2.1/supplycm/routing/hamiltonian_path_backtrack.py +34 -0
- supplycm-1.2.1/supplycm/routing/least_cost_method.py +37 -0
- supplycm-1.2.1/supplycm/routing/multi_depot_vrp.py +62 -0
- supplycm-1.2.1/supplycm/routing/northwest_corner_method.py +28 -0
- supplycm-1.2.1/supplycm/routing/periodic_vrp.py +31 -0
- supplycm-1.2.1/supplycm/routing/pickup_delivery_problem.py +57 -0
- supplycm-1.2.1/supplycm/routing/rural_postman.py +34 -0
- supplycm-1.2.1/supplycm/routing/split_delivery_vrp.py +44 -0
- supplycm-1.2.1/supplycm/routing/steiner_tree.py +44 -0
- supplycm-1.2.1/supplycm/routing/transportation_simplex_modi.py +69 -0
- supplycm-1.2.1/supplycm/routing/transshipment_problem.py +30 -0
- supplycm-1.2.1/supplycm/routing/tsp_cheapest_insertion.py +33 -0
- supplycm-1.2.1/supplycm/routing/tsp_christofides.py +88 -0
- supplycm-1.2.1/supplycm/routing/tsp_farthest_insertion.py +41 -0
- supplycm-1.2.1/supplycm/routing/tsp_held_karp.py +56 -0
- supplycm-1.2.1/supplycm/routing/tsp_nearest_insertion.py +32 -0
- supplycm-1.2.1/supplycm/routing/tsp_nearest_neighbor.py +42 -0
- supplycm-1.2.1/supplycm/routing/tsp_three_opt.py +46 -0
- supplycm-1.2.1/supplycm/routing/tsp_two_opt.py +36 -0
- supplycm-1.2.1/supplycm/routing/vehicle_scheduling.py +30 -0
- supplycm-1.2.1/supplycm/routing/vogels_approximation.py +72 -0
- supplycm-1.2.1/supplycm/routing/vrp_capacitated_greedy.py +35 -0
- supplycm-1.2.1/supplycm/routing/vrp_cluster_first_route_second.py +49 -0
- supplycm-1.2.1/supplycm/routing/vrp_savings.py +70 -0
- supplycm-1.2.1/supplycm/routing/vrp_sweep.py +47 -0
- supplycm-1.2.1/supplycm/routing/vrp_with_time_windows.py +59 -0
- supplycm-1.2.1/supplycm/scheduling/__init__.py +41 -0
- supplycm-1.2.1/supplycm/scheduling/batch_scheduling.py +21 -0
- supplycm-1.2.1/supplycm/scheduling/cmax_calculation.py +22 -0
- supplycm-1.2.1/supplycm/scheduling/critical_path_method.py +34 -0
- supplycm-1.2.1/supplycm/scheduling/critical_ratio.py +16 -0
- supplycm-1.2.1/supplycm/scheduling/deteriorating_jobs_scheduling.py +15 -0
- supplycm-1.2.1/supplycm/scheduling/earliest_start_schedule.py +27 -0
- supplycm-1.2.1/supplycm/scheduling/edd_rule.py +12 -0
- supplycm-1.2.1/supplycm/scheduling/fcfs_rule.py +12 -0
- supplycm-1.2.1/supplycm/scheduling/flow_shop_schedule.py +20 -0
- supplycm-1.2.1/supplycm/scheduling/gantt_chart_data.py +21 -0
- supplycm-1.2.1/supplycm/scheduling/job_shop_schedule.py +45 -0
- supplycm-1.2.1/supplycm/scheduling/johnsons_rule.py +42 -0
- supplycm-1.2.1/supplycm/scheduling/learning_curve_scheduling.py +14 -0
- supplycm-1.2.1/supplycm/scheduling/least_slack.py +15 -0
- supplycm-1.2.1/supplycm/scheduling/line_balancing.py +38 -0
- supplycm-1.2.1/supplycm/scheduling/list_scheduling.py +20 -0
- supplycm-1.2.1/supplycm/scheduling/lpt_rule.py +20 -0
- supplycm-1.2.1/supplycm/scheduling/lrpt_rule.py +14 -0
- supplycm-1.2.1/supplycm/scheduling/machine_utilization.py +14 -0
- supplycm-1.2.1/supplycm/scheduling/moore_hodgson.py +25 -0
- supplycm-1.2.1/supplycm/scheduling/multifit_algorithm.py +46 -0
- supplycm-1.2.1/supplycm/scheduling/neh_heuristic.py +46 -0
- supplycm-1.2.1/supplycm/scheduling/no_wait_scheduling.py +33 -0
- supplycm-1.2.1/supplycm/scheduling/open_shop_schedule.py +44 -0
- supplycm-1.2.1/supplycm/scheduling/parallel_machine_cmax.py +16 -0
- supplycm-1.2.1/supplycm/scheduling/parallel_station_scheduling.py +24 -0
- supplycm-1.2.1/supplycm/scheduling/pert_expected_duration.py +22 -0
- supplycm-1.2.1/supplycm/scheduling/preemptive_spt.py +42 -0
- supplycm-1.2.1/supplycm/scheduling/resource_constrained_scheduling.py +62 -0
- supplycm-1.2.1/supplycm/scheduling/round_robin_scheduling.py +49 -0
- supplycm-1.2.1/supplycm/scheduling/rpw_priority.py +25 -0
- supplycm-1.2.1/supplycm/scheduling/setup_time_aware_scheduling.py +23 -0
- supplycm-1.2.1/supplycm/scheduling/slack_time_calculation.py +32 -0
- supplycm-1.2.1/supplycm/scheduling/spt_rule.py +12 -0
- supplycm-1.2.1/supplycm/scheduling/srpt_rule.py +14 -0
- supplycm-1.2.1/supplycm/scheduling/tardiness_calculation.py +19 -0
- supplycm-1.2.1/supplycm/scheduling/total_completion_time.py +17 -0
- supplycm-1.2.1/supplycm/scheduling/total_weighted_tardiness.py +19 -0
- supplycm-1.2.1/supplycm/scheduling/two_machine_open_shop.py +23 -0
- supplycm-1.2.1/supplycm/scheduling/wspt_rule.py +13 -0
- supplycm-1.2.1/supplycm/simulation/__init__.py +4 -0
- supplycm-1.2.1/supplycm/simulation/monte_carlo_inventory.py +35 -0
- supplycm-1.2.1/supplycm/simulation/monte_carlo_risk.py +41 -0
- supplycm-1.2.1/supplycm/sop/__init__.py +5 -0
- supplycm-1.2.1/supplycm/sop/demand_supply_match.py +22 -0
- supplycm-1.2.1/supplycm/sop/production_chase_strategy.py +19 -0
- supplycm-1.2.1/supplycm/sop/production_level_strategy.py +16 -0
- supplycm-1.2.1/supplycm/statistics/__init__.py +41 -0
- supplycm-1.2.1/supplycm/statistics/adjusted_r_squared.py +13 -0
- supplycm-1.2.1/supplycm/statistics/anderson_darling_test.py +29 -0
- supplycm-1.2.1/supplycm/statistics/anova_one_way.py +28 -0
- supplycm-1.2.1/supplycm/statistics/bias.py +15 -0
- supplycm-1.2.1/supplycm/statistics/bootstrap_confidence_interval.py +28 -0
- supplycm-1.2.1/supplycm/statistics/chi_square_goodness_of_fit.py +20 -0
- supplycm-1.2.1/supplycm/statistics/coefficient_of_determination.py +20 -0
- supplycm-1.2.1/supplycm/statistics/coefficient_of_variation.py +19 -0
- supplycm-1.2.1/supplycm/statistics/confidence_interval_mean.py +20 -0
- supplycm-1.2.1/supplycm/statistics/correlation.py +22 -0
- supplycm-1.2.1/supplycm/statistics/descriptive_stats.py +42 -0
- supplycm-1.2.1/supplycm/statistics/diebold_mariano_test.py +24 -0
- supplycm-1.2.1/supplycm/statistics/exponential_smooth.py +19 -0
- supplycm-1.2.1/supplycm/statistics/f_test_variance.py +21 -0
- supplycm-1.2.1/supplycm/statistics/forecast_value_added.py +17 -0
- supplycm-1.2.1/supplycm/statistics/jarque_bera_test.py +23 -0
- supplycm-1.2.1/supplycm/statistics/kolmogorov_smirnov_test.py +24 -0
- supplycm-1.2.1/supplycm/statistics/kolmogorov_smirnov_two_sample.py +29 -0
- supplycm-1.2.1/supplycm/statistics/kurtosis.py +20 -0
- supplycm-1.2.1/supplycm/statistics/mae.py +15 -0
- supplycm-1.2.1/supplycm/statistics/mann_whitney_u.py +30 -0
- supplycm-1.2.1/supplycm/statistics/mape.py +23 -0
- supplycm-1.2.1/supplycm/statistics/mase.py +21 -0
- supplycm-1.2.1/supplycm/statistics/mean_percentage_error.py +23 -0
- supplycm-1.2.1/supplycm/statistics/minmax_scale.py +19 -0
- supplycm-1.2.1/supplycm/statistics/moving_average_smooth.py +19 -0
- supplycm-1.2.1/supplycm/statistics/mse.py +15 -0
- supplycm-1.2.1/supplycm/statistics/outlier_detection_iqr.py +29 -0
- supplycm-1.2.1/supplycm/statistics/percent_bias.py +18 -0
- supplycm-1.2.1/supplycm/statistics/r_squared.py +20 -0
- supplycm-1.2.1/supplycm/statistics/rmse.py +16 -0
- supplycm-1.2.1/supplycm/statistics/shapiro_wilk_approx.py +27 -0
- supplycm-1.2.1/supplycm/statistics/skewness.py +20 -0
- supplycm-1.2.1/supplycm/statistics/smape.py +20 -0
- supplycm-1.2.1/supplycm/statistics/spearman_correlation.py +33 -0
- supplycm-1.2.1/supplycm/statistics/t_test_one_sample.py +21 -0
- supplycm-1.2.1/supplycm/statistics/t_test_two_sample.py +23 -0
- supplycm-1.2.1/supplycm/statistics/tracking_signal_threshold.py +13 -0
- supplycm-1.2.1/supplycm/statistics/wilcoxon_signed_rank.py +27 -0
- supplycm-1.2.1/supplycm/statistics/zscore.py +21 -0
- supplycm-1.2.1/supplycm/supplier/__init__.py +31 -0
- supplycm-1.2.1/supplycm/supplier/ahp_supplier_selection.py +20 -0
- supplycm-1.2.1/supplycm/supplier/analytic_network_process.py +25 -0
- supplycm-1.2.1/supplycm/supplier/competitive_bidding.py +31 -0
- supplycm-1.2.1/supplycm/supplier/contract_compliance_score.py +14 -0
- supplycm-1.2.1/supplycm/supplier/data_envelopment_analysis.py +42 -0
- supplycm-1.2.1/supplycm/supplier/electre.py +45 -0
- supplycm-1.2.1/supplycm/supplier/fuzzy_topsis.py +31 -0
- supplycm-1.2.1/supplycm/supplier/lead_time_quoted_vs_actual.py +18 -0
- supplycm-1.2.1/supplycm/supplier/maverick_spend_detection.py +18 -0
- supplycm-1.2.1/supplycm/supplier/negotiation_zone.py +17 -0
- supplycm-1.2.1/supplycm/supplier/on_time_delivery_rate.py +18 -0
- supplycm-1.2.1/supplycm/supplier/preferred_supplier_index.py +23 -0
- supplycm-1.2.1/supplycm/supplier/price_analysis.py +24 -0
- supplycm-1.2.1/supplycm/supplier/promethee.py +37 -0
- supplycm-1.2.1/supplycm/supplier/purchase_order_compliance.py +16 -0
- supplycm-1.2.1/supplycm/supplier/purchase_price_variance.py +13 -0
- supplycm-1.2.1/supplycm/supplier/should_cost_analysis.py +18 -0
- supplycm-1.2.1/supplycm/supplier/spend_analysis.py +22 -0
- supplycm-1.2.1/supplycm/supplier/strategic_supplier_scorecard.py +19 -0
- supplycm-1.2.1/supplycm/supplier/supplier_audit_score.py +23 -0
- supplycm-1.2.1/supplycm/supplier/supplier_consolidation.py +20 -0
- supplycm-1.2.1/supplycm/supplier/supplier_diversity_index.py +16 -0
- supplycm-1.2.1/supplycm/supplier/supplier_evaluation_matrix.py +19 -0
- supplycm-1.2.1/supplycm/supplier/supplier_rating.py +16 -0
- supplycm-1.2.1/supplycm/supplier/supplier_risk_score.py +18 -0
- supplycm-1.2.1/supplycm/supplier/supplier_segmentation.py +29 -0
- supplycm-1.2.1/supplycm/supplier/topsis.py +51 -0
- supplycm-1.2.1/supplycm/supplier/total_cost_of_ownership.py +15 -0
- supplycm-1.2.1/supplycm/supplier/vendor_scorecard.py +27 -0
- supplycm-1.2.1/supplycm/supplier/weighted_point_method.py +14 -0
- supplycm-1.2.1/supplycm/sustainability/__init__.py +5 -0
- supplycm-1.2.1/supplycm/sustainability/carbon_footprint_transport.py +14 -0
- supplycm-1.2.1/supplycm/sustainability/energy_consumption_warehouse.py +15 -0
- supplycm-1.2.1/supplycm/sustainability/reverse_logistics_cost.py +16 -0
- supplycm-1.2.1/supplycm/warehouse/__init__.py +11 -0
- supplycm-1.2.1/supplycm/warehouse/cross_dock_scheduling.py +34 -0
- supplycm-1.2.1/supplycm/warehouse/dock_door_assignment.py +25 -0
- supplycm-1.2.1/supplycm/warehouse/order_picking_wave.py +29 -0
- supplycm-1.2.1/supplycm/warehouse/pallet_building.py +29 -0
- supplycm-1.2.1/supplycm/warehouse/putaway_strategy.py +30 -0
- supplycm-1.2.1/supplycm/warehouse/return_routing.py +24 -0
- supplycm-1.2.1/supplycm/warehouse/s_shape_routing.py +18 -0
- supplycm-1.2.1/supplycm/warehouse/traveling_salesman_picking.py +27 -0
- supplycm-1.2.1/supplycm/warehouse/warehouse_layout_optimization.py +23 -0
- supplycm-1.2.1/supplycm/warehouse/warehouse_slotting_abc.py +29 -0
- supplycm-1.2.1/supplycm.egg-info/PKG-INFO +138 -0
- supplycm-1.2.1/supplycm.egg-info/SOURCES.txt +441 -0
- supplycm-1.2.1/supplycm.egg-info/dependency_links.txt +1 -0
- supplycm-1.2.1/supplycm.egg-info/top_level.txt +1 -0
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to supplycm will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
## [Unreleased]
|
|
9
|
+
|
|
10
|
+
### Planned
|
|
11
|
+
- Machine learning algorithms
|
|
12
|
+
- Real-time dashboards
|
|
13
|
+
|
|
14
|
+
## [1.2.1] - 2026-09-06
|
|
15
|
+
|
|
16
|
+
### Changed
|
|
17
|
+
- Moved education materials (learning paths, concept map, flashcards, notebooks) to a separate repository
|
|
18
|
+
- Package now contains only the Python library, tests, and examples
|
|
19
|
+
- Updated README to link to the companion learning repository
|
|
20
|
+
|
|
21
|
+
### Notes
|
|
22
|
+
- No algorithm changes in this release
|
|
23
|
+
- No breaking changes
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
### Planned
|
|
28
|
+
- Machine learning algorithms
|
|
29
|
+
- Real-time dashboards
|
|
30
|
+
- API wrapper
|
|
31
|
+
## [1.2.0] - 2026-09-06
|
|
32
|
+
|
|
33
|
+
### Added
|
|
34
|
+
- 13 new algorithms across 3 new categories:
|
|
35
|
+
- Network Design (5): center of gravity, facility location, single-source allocation, break-even, network reliability
|
|
36
|
+
- IoT / Real-time (4): anomaly detection, sensor smoothing, inventory monitoring, data aggregation
|
|
37
|
+
- Blockchain (4): hash chain, verify chain, provenance tracking, smart contracts
|
|
38
|
+
- 5 interactive Jupyter notebooks for hands-on learning
|
|
39
|
+
- Unit tests for all new algorithms
|
|
40
|
+
|
|
41
|
+
### Changed
|
|
42
|
+
- Total algorithm count increased from 384 to 397
|
|
43
|
+
- README updated with notebook links
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
### Planned
|
|
48
|
+
- Interactive learning notebooks
|
|
49
|
+
- Video tutorials
|
|
50
|
+
- Certification program
|
|
51
|
+
## [1.1.0] - 2026-09-06
|
|
52
|
+
|
|
53
|
+
### Added
|
|
54
|
+
- 24 new algorithms across 7 new categories:
|
|
55
|
+
- Quality / Six Sigma (7): X-bar chart, R chart, P-chart, Cp, Cpk, DPMO, sigma level
|
|
56
|
+
- Lean (4): takt time, OEE, cycle efficiency, WIP calculation
|
|
57
|
+
- S&OP (3): demand-supply match, chase and level production strategies
|
|
58
|
+
- Sustainability (3): carbon footprint, reverse logistics, energy consumption
|
|
59
|
+
- Contracts (3): revenue sharing, buyback, quantity flexibility
|
|
60
|
+
- Simulation (2): Monte Carlo inventory and risk
|
|
61
|
+
- Cost (2): landed cost, total procurement cost
|
|
62
|
+
- Comprehensive education framework:
|
|
63
|
+
- Learning paths (beginner to advanced)
|
|
64
|
+
- Concept map showing algorithm relationships
|
|
65
|
+
- Data sources guide per algorithm
|
|
66
|
+
- Flashcards for exam preparation
|
|
67
|
+
- Plain English guides per category
|
|
68
|
+
- Unit tests for all new algorithms
|
|
69
|
+
|
|
70
|
+
### Changed
|
|
71
|
+
- Total algorithm count increased from 360 to 384
|
|
72
|
+
- README updated with education section
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
### Planned
|
|
77
|
+
- Additional algorithms for sustainability and green supply chain
|
|
78
|
+
- Performance optimizations for large datasets
|
|
79
|
+
- Integration with popular data formats
|
|
80
|
+
|
|
81
|
+
## [1.0.0] - 2026-12-15
|
|
82
|
+
|
|
83
|
+
### Added
|
|
84
|
+
- Comprehensive test suite with 200+ unit tests using unittest framework
|
|
85
|
+
- Property-based tests for mathematical invariants
|
|
86
|
+
- Edge case tests for boundary conditions
|
|
87
|
+
- Integration tests for end-to-end workflows
|
|
88
|
+
- Doctest runner for docstring examples
|
|
89
|
+
- Benchmark script for performance measurement
|
|
90
|
+
- Type hints validation script
|
|
91
|
+
- Contributing guide for new contributors
|
|
92
|
+
- Code of Conduct based on Contributor Covenant
|
|
93
|
+
- Security policy for vulnerability reporting
|
|
94
|
+
- Frequently Asked Questions (FAQ) document
|
|
95
|
+
- API reference documentation
|
|
96
|
+
- Migration guide for version updates
|
|
97
|
+
- Usage tutorials for inventory, forecasting, routing, optimization, and supplier selection
|
|
98
|
+
- GitHub Actions Continuous Integration (CI) for Python 3.8-3.12
|
|
99
|
+
- Issue templates for bug reports and feature requests
|
|
100
|
+
- Pull Request (PR) template
|
|
101
|
+
- Python version compatibility matrix in README
|
|
102
|
+
- Badges for Python version, license, test status, and dependencies
|
|
103
|
+
|
|
104
|
+
### Changed
|
|
105
|
+
- README updated with quick start guide and badges
|
|
106
|
+
- All algorithm modules follow consistent style guide
|
|
107
|
+
- Documentation reorganized into docs/ directory
|
|
108
|
+
|
|
109
|
+
### Fixed
|
|
110
|
+
- Repository URL corrected to point to atqatq/supplycm
|
|
111
|
+
|
|
112
|
+
## [0.1.0] - 2025-12-15
|
|
113
|
+
|
|
114
|
+
### Added
|
|
115
|
+
- 360 supply chain management algorithms across 12 categories:
|
|
116
|
+
- Forecasting (50 algorithms)
|
|
117
|
+
- Inventory (60 algorithms)
|
|
118
|
+
- Statistics (40 algorithms)
|
|
119
|
+
- Routing (30 algorithms)
|
|
120
|
+
- Network (30 algorithms)
|
|
121
|
+
- Scheduling (40 algorithms)
|
|
122
|
+
- Material Requirements Planning (MRP) (30 algorithms)
|
|
123
|
+
- Optimization (30 algorithms)
|
|
124
|
+
- Supplier Management (30 algorithms)
|
|
125
|
+
- Warehouse (10 algorithms)
|
|
126
|
+
- Demand Planning (9 algorithms)
|
|
127
|
+
- Risk Assessment (1 algorithm)
|
|
128
|
+
- Pure Python implementation with zero external dependencies
|
|
129
|
+
- MIT License
|
|
130
|
+
- Setup scripts for pip installation
|
|
131
|
+
|
|
132
|
+
### Notes
|
|
133
|
+
- Algorithms span classic operations research methods and modern heuristics
|
|
134
|
+
- Each algorithm is self-contained in its own module
|
|
135
|
+
- All functions include docstrings with usage examples
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# Code of Conduct
|
|
2
|
+
|
|
3
|
+
## Our Pledge
|
|
4
|
+
|
|
5
|
+
We pledge to make participation in our community a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation.
|
|
6
|
+
|
|
7
|
+
## Our Standards
|
|
8
|
+
|
|
9
|
+
Examples of behavior that contributes to a positive environment:
|
|
10
|
+
|
|
11
|
+
* Using welcoming and inclusive language
|
|
12
|
+
* Being respectful of differing viewpoints and experiences
|
|
13
|
+
* Gracefully accepting constructive criticism
|
|
14
|
+
* Focusing on what is best for the community
|
|
15
|
+
* Showing empathy towards other community members
|
|
16
|
+
|
|
17
|
+
Examples of unacceptable behavior:
|
|
18
|
+
|
|
19
|
+
* The use of sexualized language or imagery and unwelcome sexual attention or advances
|
|
20
|
+
* Trolling, insulting/derogatory comments, and personal or political attacks
|
|
21
|
+
* Public or private harassment
|
|
22
|
+
* Publishing others' private information without explicit permission
|
|
23
|
+
* Other conduct which could reasonably be considered inappropriate in a professional setting
|
|
24
|
+
|
|
25
|
+
## Enforcement Responsibilities
|
|
26
|
+
|
|
27
|
+
Community leaders are responsible for clarifying and enforcing our standards of acceptable behavior and will take appropriate and fair corrective action in response to any behavior that they deem inappropriate, threatening, offensive, or harmful.
|
|
28
|
+
|
|
29
|
+
## Scope
|
|
30
|
+
|
|
31
|
+
This Code of Conduct applies within all community spaces, and also applies when an individual is officially representing the community in public spaces.
|
|
32
|
+
|
|
33
|
+
## Enforcement
|
|
34
|
+
|
|
35
|
+
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the repository maintainers. All complaints will be reviewed and investigated promptly and fairly.
|
|
36
|
+
|
|
37
|
+
## Attribution
|
|
38
|
+
|
|
39
|
+
This Code of Conduct is adapted from the Contributor Covenant, version 2.0.
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# supplycm Community
|
|
2
|
+
|
|
3
|
+
Welcome to the supplycm community! This file outlines our community standards and resources.
|
|
4
|
+
|
|
5
|
+
## Health Files
|
|
6
|
+
|
|
7
|
+
| File | Purpose |
|
|
8
|
+
|------|---------|
|
|
9
|
+
| [CONTRIBUTING.md](CONTRIBUTING.md) | How to contribute |
|
|
10
|
+
| [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md) | Community behavior standards |
|
|
11
|
+
| [SECURITY.md](SECURITY.md) | Security policy |
|
|
12
|
+
| [CHANGELOG.md](CHANGELOG.md) | Version history |
|
|
13
|
+
| [docs/COLLABORATION.md](docs/COLLABORATION.md) | Collaboration guide |
|
|
14
|
+
| [docs/FAQ.md](docs/FAQ.md) | Frequently asked questions |
|
|
15
|
+
|
|
16
|
+
## Issue Templates
|
|
17
|
+
|
|
18
|
+
When you create a new issue, you can choose from:
|
|
19
|
+
- **Bug report** - Report something that is broken
|
|
20
|
+
- **Feature request** - Suggest a new algorithm or improvement
|
|
21
|
+
|
|
22
|
+
## Pull Request Template
|
|
23
|
+
|
|
24
|
+
All Pull Requests (PRs) should use the provided template, which includes a checklist
|
|
25
|
+
for code quality, tests, and documentation.
|
|
26
|
+
|
|
27
|
+
## Labels
|
|
28
|
+
|
|
29
|
+
We use the following labels to organize work:
|
|
30
|
+
|
|
31
|
+
### Type Labels
|
|
32
|
+
- `bug` - Something is not working
|
|
33
|
+
- `enhancement` - New feature or improvement
|
|
34
|
+
- `documentation` - Documentation changes
|
|
35
|
+
|
|
36
|
+
### Difficulty Labels
|
|
37
|
+
- `good first issue` - Good for newcomers
|
|
38
|
+
- `help wanted` - Extra attention needed
|
|
39
|
+
|
|
40
|
+
### Priority Labels
|
|
41
|
+
- `priority: high` - Should be addressed soon
|
|
42
|
+
- `priority: medium` - Normal priority
|
|
43
|
+
- `priority: low` - Can wait
|
|
44
|
+
|
|
45
|
+
## How to Get Involved
|
|
46
|
+
|
|
47
|
+
1. **Star the repository** if you find it useful
|
|
48
|
+
2. **Report bugs** you encounter
|
|
49
|
+
3. **Suggest features** you need
|
|
50
|
+
4. **Contribute code** via Pull Requests
|
|
51
|
+
5. **Help others** in issue discussions
|
|
52
|
+
6. **Improve documentation** with clearer explanations
|
|
53
|
+
|
|
54
|
+
## Communication
|
|
55
|
+
|
|
56
|
+
- **GitHub Issues** - For bugs, features, and questions
|
|
57
|
+
- **GitHub Discussions** - For general discussion and ideas
|
|
58
|
+
- **Pull Request comments** - For code-specific discussions
|
|
59
|
+
|
|
60
|
+
## Contributor Recognition
|
|
61
|
+
|
|
62
|
+
All contributors are listed in the git history. We are working on:
|
|
63
|
+
- A contributors section in the README
|
|
64
|
+
- Automated contributor highlights in release notes
|
|
65
|
+
- A "Contributor of the Month" program (coming soon)
|
|
66
|
+
|
|
67
|
+
## Code of Conduct
|
|
68
|
+
|
|
69
|
+
Everyone participating in the supplycm community is expected to follow
|
|
70
|
+
our [Code of Conduct](CODE_OF_CONDUCT.md). Please be respectful and welcoming.
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
# Contributing to supplycm
|
|
2
|
+
|
|
3
|
+
Thank you for your interest in contributing to supplycm. This document explains how to contribute.
|
|
4
|
+
|
|
5
|
+
## Ways to Contribute
|
|
6
|
+
|
|
7
|
+
1. **Report bugs** - Open an issue describing the problem with a minimal example.
|
|
8
|
+
2. **Suggest features** - Open an issue describing the use case and proposed solution.
|
|
9
|
+
3. **Improve documentation** - Fix typos, add examples, clarify explanations.
|
|
10
|
+
4. **Add algorithms** - Implement new supply chain algorithms following the style guide below.
|
|
11
|
+
5. **Write tests** - Add or improve test coverage for existing algorithms.
|
|
12
|
+
|
|
13
|
+
## Style Guide
|
|
14
|
+
|
|
15
|
+
### Algorithm Module Structure
|
|
16
|
+
|
|
17
|
+
Each algorithm lives in its own file under the appropriate category directory:
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
supplycm/
|
|
21
|
+
inventory/
|
|
22
|
+
economic_order_quantity.py
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
### File Template
|
|
26
|
+
|
|
27
|
+
```python
|
|
28
|
+
"""Short one-line description."""
|
|
29
|
+
from typing import List, Optional
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
def algorithm_name(param1: float, param2: int = 3) -> float:
|
|
33
|
+
"""One-line summary.
|
|
34
|
+
|
|
35
|
+
Longer description explaining the formula or logic.
|
|
36
|
+
|
|
37
|
+
Args:
|
|
38
|
+
param1: Description of param1.
|
|
39
|
+
param2: Description of param2.
|
|
40
|
+
|
|
41
|
+
Returns:
|
|
42
|
+
Description of return value.
|
|
43
|
+
|
|
44
|
+
Example:
|
|
45
|
+
>>> algorithm_name(100, 5)
|
|
46
|
+
42.0
|
|
47
|
+
"""
|
|
48
|
+
if param1 <= 0:
|
|
49
|
+
raise ValueError("param1 must be positive")
|
|
50
|
+
return param1 * 0.42
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### Rules
|
|
54
|
+
|
|
55
|
+
1. **No external dependencies** - only the Python standard library.
|
|
56
|
+
2. **Type hints** - all function parameters and return types must have type hints.
|
|
57
|
+
3. **Docstrings** - every public function must have a docstring with at least one example.
|
|
58
|
+
4. **Pure functions** - algorithms should not have side effects.
|
|
59
|
+
5. **Error handling** - validate inputs and raise ValueError for invalid parameters.
|
|
60
|
+
|
|
61
|
+
## Development Workflow
|
|
62
|
+
|
|
63
|
+
1. Fork the repository.
|
|
64
|
+
2. Create a feature branch: `git checkout -b add-new-algorithm`.
|
|
65
|
+
3. Write your code following the style guide.
|
|
66
|
+
4. Add tests in `tests/test_<category>.py`.
|
|
67
|
+
5. Run tests: `python tests/run_tests.py`.
|
|
68
|
+
6. Commit with a clear message: `Add <algorithm_name> to <category> module`.
|
|
69
|
+
7. Open a Pull Request (PR).
|
|
70
|
+
|
|
71
|
+
## Pull Request Checklist
|
|
72
|
+
|
|
73
|
+
- [ ] Code follows the style guide
|
|
74
|
+
- [ ] Tests pass locally
|
|
75
|
+
- [ ] Docstring includes at least one example
|
|
76
|
+
- [ ] No external dependencies added
|
|
77
|
+
- [ ] Commit message is clear and descriptive
|
|
78
|
+
|
|
79
|
+
## License
|
|
80
|
+
|
|
81
|
+
By contributing, you agree that your contributions will be licensed under the MIT License.
|
supplycm-1.2.1/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2015-2025 supplycm
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# MANIFEST.in for supplycm
|
|
2
|
+
include README.md
|
|
3
|
+
include LICENSE
|
|
4
|
+
include CHANGELOG.md
|
|
5
|
+
include CONTRIBUTING.md
|
|
6
|
+
include CODE_OF_CONDUCT.md
|
|
7
|
+
include SECURITY.md
|
|
8
|
+
include COMMUNITY.md
|
|
9
|
+
include pyproject.toml
|
|
10
|
+
recursive-include examples *.py
|
|
11
|
+
recursive-exclude tests *
|
|
12
|
+
recursive-exclude * __pycache__
|
|
13
|
+
recursive-exclude * *.py[cod]
|
supplycm-1.2.1/PKG-INFO
ADDED
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: supplycm
|
|
3
|
+
Version: 1.2.1
|
|
4
|
+
Summary: Supply Chain Management algorithms (397 pure-Python, no dependencies)
|
|
5
|
+
Home-page: https://github.com/atqatq/supplycm
|
|
6
|
+
Author: Atique
|
|
7
|
+
Author-email: Atique <11529740+atqatq@users.noreply.github.com>
|
|
8
|
+
License: MIT
|
|
9
|
+
Project-URL: Homepage, https://github.com/atqatq/supplycm
|
|
10
|
+
Project-URL: Documentation, https://github.com/atqatq/supplycm/tree/main/docs
|
|
11
|
+
Project-URL: Issues, https://github.com/atqatq/supplycm/issues
|
|
12
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
13
|
+
Classifier: Intended Audience :: Developers
|
|
14
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
15
|
+
Classifier: Programming Language :: Python :: 3
|
|
16
|
+
Classifier: Topic :: Scientific/Engineering
|
|
17
|
+
Requires-Python: >=3.6
|
|
18
|
+
Description-Content-Type: text/markdown
|
|
19
|
+
License-File: LICENSE
|
|
20
|
+
Dynamic: author
|
|
21
|
+
Dynamic: home-page
|
|
22
|
+
Dynamic: license-file
|
|
23
|
+
Dynamic: requires-python
|
|
24
|
+
|
|
25
|
+
# supplycm
|
|
26
|
+
|
|
27
|
+
[](https://www.python.org/downloads/)
|
|
28
|
+
[](https://opensource.org/licenses/MIT)
|
|
29
|
+
[](tests/)
|
|
30
|
+
[](setup.py)
|
|
31
|
+
|
|
32
|
+
A pure-Python library of **397 supply chain management algorithms** with **zero external dependencies**. All algorithms are public-domain / patent-free implementations suitable for educational and commercial use.
|
|
33
|
+
|
|
34
|
+
## Quick Start
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
pip install supplycm
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
```python
|
|
41
|
+
from supplycm.inventory import economic_order_quantity
|
|
42
|
+
|
|
43
|
+
# Compute optimal order quantity
|
|
44
|
+
q = economic_order_quantity(demand=10000, ordering_cost=100, holding_cost=5)
|
|
45
|
+
print(f'Order {q:.0f} units each cycle')
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## Installation
|
|
49
|
+
|
|
50
|
+
### From PyPI
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
pip install supplycm
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### From source
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
git clone https://github.com/atqatq/supplycm.git
|
|
60
|
+
cd supplycm
|
|
61
|
+
pip install .
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
**Note**: Python 3.6 or later is required. Check your version with `python --version`.
|
|
65
|
+
|
|
66
|
+
## Categories
|
|
67
|
+
|
|
68
|
+
| Module | Count | Description |
|
|
69
|
+
|--------|-------|-------------|
|
|
70
|
+
| `supplycm.forecasting` | 50 | Time series forecasting (moving averages, exponential smoothing, Croston, AR/MA) |
|
|
71
|
+
| `supplycm.inventory` | 60 | EOQ/EPQ, newsvendor, lot-sizing, ABC/XYZ analysis |
|
|
72
|
+
| `supplycm.statistics` | 40 | MAPE, RMSE, MASE, hypothesis tests, descriptive stats |
|
|
73
|
+
| `supplycm.routing` | 30 | TSP, VRP, assignment problem, transportation simplex |
|
|
74
|
+
| `supplycm.network` | 30 | Shortest paths, MST, max-flow, graph algorithms |
|
|
75
|
+
| `supplycm.scheduling` | 40 | Johnson's rule, NEH, dispatching rules, CPM/PERT |
|
|
76
|
+
| `supplycm.mrp` | 30 | BOM explosion, MRP, MPS, kanban, DBR |
|
|
77
|
+
| `supplycm.optimization` | 30 | Simplex, GA, SA, PSO, ACO, knapsack, DP |
|
|
78
|
+
| `supplycm.supplier` | 30 | AHP, TOPSIS, DEA, PROMETHEE, ELECTRE |
|
|
79
|
+
| `supplycm.warehouse` | 10 | Slotting, picking, cross-dock, putaway |
|
|
80
|
+
| `supplycm.demand` | 9 | Aggregation, seasonality, sensing, cannibalization |
|
|
81
|
+
| `supplycm.risk` | 1 | Supply chain resilience index |
|
|
82
|
+
| `supplycm.quality` | 7 | Control charts, Cp/Cpk, DPMO, sigma level |
|
|
83
|
+
| `supplycm.lean` | 4 | Takt time, OEE, Little's Law, cycle efficiency |
|
|
84
|
+
| `supplycm.sop` | 3 | Sales and Operations Planning, chase/level strategies |
|
|
85
|
+
| `supplycm.sustainability` | 3 | Carbon footprint, reverse logistics, energy |
|
|
86
|
+
| `supplycm.contracts` | 3 | Revenue sharing, buyback, quantity flexibility |
|
|
87
|
+
| `supplycm.simulation` | 2 | Monte Carlo inventory and risk simulation |
|
|
88
|
+
| `supplycm.cost` | 2 | Landed cost, total procurement cost |
|
|
89
|
+
| `supplycm.network_design` | 5 | Center of gravity, facility location, break-even |
|
|
90
|
+
| `supplycm.iot` | 4 | Anomaly detection, sensor smoothing, real-time monitoring |
|
|
91
|
+
| `supplycm.blockchain` | 4 | Hash chain, provenance tracking, smart contracts |
|
|
92
|
+
| **Total** | **397** | |
|
|
93
|
+
|
|
94
|
+
## Python Version Compatibility
|
|
95
|
+
|
|
96
|
+
| Python | Status |
|
|
97
|
+
|--------|--------|
|
|
98
|
+
| 3.6 | Supported |
|
|
99
|
+
| 3.7 | Supported |
|
|
100
|
+
| 3.8 | Tested |
|
|
101
|
+
| 3.9 | Tested |
|
|
102
|
+
| 3.10 | Tested |
|
|
103
|
+
| 3.11 | Tested |
|
|
104
|
+
| 3.12 | Tested |
|
|
105
|
+
| 3.13 | Tested |
|
|
106
|
+
|
|
107
|
+
## Running Tests
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
# Run all unit tests
|
|
111
|
+
python tests/run_tests.py
|
|
112
|
+
|
|
113
|
+
# Run doctests
|
|
114
|
+
python tests/run_doctests.py
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
## Design Principles
|
|
118
|
+
|
|
119
|
+
1. **Pure Python** - no NumPy, pandas, or any third-party dependency. Only the standard library.
|
|
120
|
+
2. **Self-contained** - each algorithm lives in its own module and can be imported independently.
|
|
121
|
+
3. **Documented** - every function has a docstring with usage examples.
|
|
122
|
+
4. **Tested** - comprehensive test suite using Python's built-in unittest framework.
|
|
123
|
+
5. **Consistent** - all modules follow the same style and structure.
|
|
124
|
+
|
|
125
|
+
## Community
|
|
126
|
+
|
|
127
|
+
- **[Discussions](https://github.com/atqatq/supplycm/discussions)** - Ask questions, share ideas, show your projects
|
|
128
|
+
- **[Issues](https://github.com/atqatq/supplycm/issues)** - Report bugs or request features
|
|
129
|
+
- **[Contributing Guide](CONTRIBUTING.md)** - How to contribute code, documentation, or algorithms
|
|
130
|
+
|
|
131
|
+
## Learning the Package
|
|
132
|
+
|
|
133
|
+
Tutorials, learning paths, and interactive notebooks are available in the companion repository:
|
|
134
|
+
**[atqatq/supplycm-learning](https://github.com/atqatq/supplycm-learning)**
|
|
135
|
+
|
|
136
|
+
## License
|
|
137
|
+
|
|
138
|
+
MIT - see [LICENSE](LICENSE).
|
supplycm-1.2.1/README.md
ADDED
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
# supplycm
|
|
2
|
+
|
|
3
|
+
[](https://www.python.org/downloads/)
|
|
4
|
+
[](https://opensource.org/licenses/MIT)
|
|
5
|
+
[](tests/)
|
|
6
|
+
[](setup.py)
|
|
7
|
+
|
|
8
|
+
A pure-Python library of **397 supply chain management algorithms** with **zero external dependencies**. All algorithms are public-domain / patent-free implementations suitable for educational and commercial use.
|
|
9
|
+
|
|
10
|
+
## Quick Start
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
pip install supplycm
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
```python
|
|
17
|
+
from supplycm.inventory import economic_order_quantity
|
|
18
|
+
|
|
19
|
+
# Compute optimal order quantity
|
|
20
|
+
q = economic_order_quantity(demand=10000, ordering_cost=100, holding_cost=5)
|
|
21
|
+
print(f'Order {q:.0f} units each cycle')
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Installation
|
|
25
|
+
|
|
26
|
+
### From PyPI
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
pip install supplycm
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
### From source
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
git clone https://github.com/atqatq/supplycm.git
|
|
36
|
+
cd supplycm
|
|
37
|
+
pip install .
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
**Note**: Python 3.6 or later is required. Check your version with `python --version`.
|
|
41
|
+
|
|
42
|
+
## Categories
|
|
43
|
+
|
|
44
|
+
| Module | Count | Description |
|
|
45
|
+
|--------|-------|-------------|
|
|
46
|
+
| `supplycm.forecasting` | 50 | Time series forecasting (moving averages, exponential smoothing, Croston, AR/MA) |
|
|
47
|
+
| `supplycm.inventory` | 60 | EOQ/EPQ, newsvendor, lot-sizing, ABC/XYZ analysis |
|
|
48
|
+
| `supplycm.statistics` | 40 | MAPE, RMSE, MASE, hypothesis tests, descriptive stats |
|
|
49
|
+
| `supplycm.routing` | 30 | TSP, VRP, assignment problem, transportation simplex |
|
|
50
|
+
| `supplycm.network` | 30 | Shortest paths, MST, max-flow, graph algorithms |
|
|
51
|
+
| `supplycm.scheduling` | 40 | Johnson's rule, NEH, dispatching rules, CPM/PERT |
|
|
52
|
+
| `supplycm.mrp` | 30 | BOM explosion, MRP, MPS, kanban, DBR |
|
|
53
|
+
| `supplycm.optimization` | 30 | Simplex, GA, SA, PSO, ACO, knapsack, DP |
|
|
54
|
+
| `supplycm.supplier` | 30 | AHP, TOPSIS, DEA, PROMETHEE, ELECTRE |
|
|
55
|
+
| `supplycm.warehouse` | 10 | Slotting, picking, cross-dock, putaway |
|
|
56
|
+
| `supplycm.demand` | 9 | Aggregation, seasonality, sensing, cannibalization |
|
|
57
|
+
| `supplycm.risk` | 1 | Supply chain resilience index |
|
|
58
|
+
| `supplycm.quality` | 7 | Control charts, Cp/Cpk, DPMO, sigma level |
|
|
59
|
+
| `supplycm.lean` | 4 | Takt time, OEE, Little's Law, cycle efficiency |
|
|
60
|
+
| `supplycm.sop` | 3 | Sales and Operations Planning, chase/level strategies |
|
|
61
|
+
| `supplycm.sustainability` | 3 | Carbon footprint, reverse logistics, energy |
|
|
62
|
+
| `supplycm.contracts` | 3 | Revenue sharing, buyback, quantity flexibility |
|
|
63
|
+
| `supplycm.simulation` | 2 | Monte Carlo inventory and risk simulation |
|
|
64
|
+
| `supplycm.cost` | 2 | Landed cost, total procurement cost |
|
|
65
|
+
| `supplycm.network_design` | 5 | Center of gravity, facility location, break-even |
|
|
66
|
+
| `supplycm.iot` | 4 | Anomaly detection, sensor smoothing, real-time monitoring |
|
|
67
|
+
| `supplycm.blockchain` | 4 | Hash chain, provenance tracking, smart contracts |
|
|
68
|
+
| **Total** | **397** | |
|
|
69
|
+
|
|
70
|
+
## Python Version Compatibility
|
|
71
|
+
|
|
72
|
+
| Python | Status |
|
|
73
|
+
|--------|--------|
|
|
74
|
+
| 3.6 | Supported |
|
|
75
|
+
| 3.7 | Supported |
|
|
76
|
+
| 3.8 | Tested |
|
|
77
|
+
| 3.9 | Tested |
|
|
78
|
+
| 3.10 | Tested |
|
|
79
|
+
| 3.11 | Tested |
|
|
80
|
+
| 3.12 | Tested |
|
|
81
|
+
| 3.13 | Tested |
|
|
82
|
+
|
|
83
|
+
## Running Tests
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
# Run all unit tests
|
|
87
|
+
python tests/run_tests.py
|
|
88
|
+
|
|
89
|
+
# Run doctests
|
|
90
|
+
python tests/run_doctests.py
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
## Design Principles
|
|
94
|
+
|
|
95
|
+
1. **Pure Python** - no NumPy, pandas, or any third-party dependency. Only the standard library.
|
|
96
|
+
2. **Self-contained** - each algorithm lives in its own module and can be imported independently.
|
|
97
|
+
3. **Documented** - every function has a docstring with usage examples.
|
|
98
|
+
4. **Tested** - comprehensive test suite using Python's built-in unittest framework.
|
|
99
|
+
5. **Consistent** - all modules follow the same style and structure.
|
|
100
|
+
|
|
101
|
+
## Community
|
|
102
|
+
|
|
103
|
+
- **[Discussions](https://github.com/atqatq/supplycm/discussions)** - Ask questions, share ideas, show your projects
|
|
104
|
+
- **[Issues](https://github.com/atqatq/supplycm/issues)** - Report bugs or request features
|
|
105
|
+
- **[Contributing Guide](CONTRIBUTING.md)** - How to contribute code, documentation, or algorithms
|
|
106
|
+
|
|
107
|
+
## Learning the Package
|
|
108
|
+
|
|
109
|
+
Tutorials, learning paths, and interactive notebooks are available in the companion repository:
|
|
110
|
+
**[atqatq/supplycm-learning](https://github.com/atqatq/supplycm-learning)**
|
|
111
|
+
|
|
112
|
+
## License
|
|
113
|
+
|
|
114
|
+
MIT - see [LICENSE](LICENSE).
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# Security Policy
|
|
2
|
+
|
|
3
|
+
## Reporting a Vulnerability
|
|
4
|
+
|
|
5
|
+
If you discover a security vulnerability in supplycm, please report it responsibly.
|
|
6
|
+
|
|
7
|
+
### How to Report
|
|
8
|
+
|
|
9
|
+
1. **Do not** open a public GitHub issue.
|
|
10
|
+
2. Email the maintainer directly with details of the vulnerability.
|
|
11
|
+
3. Include a description of the issue, steps to reproduce, and potential impact.
|
|
12
|
+
|
|
13
|
+
### Response Timeline
|
|
14
|
+
|
|
15
|
+
- **Acknowledgment**: Within 48 hours of receiving your report.
|
|
16
|
+
- **Initial Assessment**: Within 7 days.
|
|
17
|
+
- **Fix Release**: Within 30 days for critical issues, 90 days for others.
|
|
18
|
+
|
|
19
|
+
## Security Considerations
|
|
20
|
+
|
|
21
|
+
supplycm is a pure-Python library with no external dependencies. However:
|
|
22
|
+
|
|
23
|
+
1. **Input validation**: Most algorithms validate inputs, but always sanitize data from untrusted sources before passing it to library functions.
|
|
24
|
+
2. **Numerical stability**: Some algorithms may produce unexpected results with extreme or NaN inputs. Always validate output ranges.
|
|
25
|
+
3. **No network access**: The library does not make any network calls, reducing attack surface.
|
|
26
|
+
|
|
27
|
+
## Supported Versions
|
|
28
|
+
|
|
29
|
+
Only the latest release receives security updates.
|
|
30
|
+
|
|
31
|
+
| Version | Supported |
|
|
32
|
+
|---------|--------------------|
|
|
33
|
+
| 0.1.x | Yes |
|
|
34
|
+
| < 0.1 | No |
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"""supplycm usage examples."""
|