parse-lp 3.0.0__tar.gz → 3.0.2__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.
- {parse_lp-3.0.0 → parse_lp-3.0.2}/Cargo.lock +70 -4
- {parse_lp-3.0.0 → parse_lp-3.0.2}/PKG-INFO +1 -1
- {parse_lp-3.0.0 → parse_lp-3.0.2}/python/Cargo.toml +1 -1
- {parse_lp-3.0.0 → parse_lp-3.0.2}/python/python/CHANGELOG.md +7 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/rust/Cargo.toml +4 -3
- {parse_lp-3.0.0 → parse_lp-3.0.2}/rust/README.md +50 -2
- {parse_lp-3.0.0 → parse_lp-3.0.2}/rust/rust/CHANGELOG.md +14 -0
- parse_lp-3.0.2/rust/src/compat/lp_solvers.rs +519 -0
- parse_lp-3.0.2/rust/src/compat/mod.rs +2 -0
- parse_lp-3.0.2/rust/src/lib.rs +50 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/rust/src/model.rs +1 -9
- parse_lp-3.0.0/rust/tests/snapshots/test_nom_from_file__afiro.snap → parse_lp-3.0.2/rust/tests/snapshots/test_from_file__afiro.snap +1 -1
- parse_lp-3.0.0/rust/tests/snapshots/test_nom_from_file__afiro_ext.snap → parse_lp-3.0.2/rust/tests/snapshots/test_from_file__afiro_ext.snap +1 -1
- parse_lp-3.0.0/rust/tests/snapshots/test_nom_from_file__american_steel_problem.snap → parse_lp-3.0.2/rust/tests/snapshots/test_from_file__american_steel_problem.snap +1 -1
- parse_lp-3.0.0/rust/tests/snapshots/test_nom_from_file__beer_distribution_problem.snap → parse_lp-3.0.2/rust/tests/snapshots/test_from_file__beer_distribution_problem.snap +1 -1
- parse_lp-3.0.0/rust/tests/snapshots/test_nom_from_file__blank_lines.snap → parse_lp-3.0.2/rust/tests/snapshots/test_from_file__blank_lines.snap +1 -1
- parse_lp-3.0.0/rust/tests/snapshots/test_nom_from_file__boeing1.snap → parse_lp-3.0.2/rust/tests/snapshots/test_from_file__boeing1.snap +1 -1
- parse_lp-3.0.0/rust/tests/snapshots/test_nom_from_file__boeing2.snap → parse_lp-3.0.2/rust/tests/snapshots/test_from_file__boeing2.snap +1 -1
- parse_lp-3.0.0/rust/tests/snapshots/test_nom_from_file__complex_names.snap → parse_lp-3.0.2/rust/tests/snapshots/test_from_file__complex_names.snap +1 -1
- parse_lp-3.0.0/rust/tests/snapshots/test_nom_from_file__computer_plant_problem.snap → parse_lp-3.0.2/rust/tests/snapshots/test_from_file__computer_plant_problem.snap +1 -1
- parse_lp-3.0.0/rust/tests/snapshots/test_nom_from_file__cplex.snap → parse_lp-3.0.2/rust/tests/snapshots/test_from_file__cplex.snap +1 -1
- parse_lp-3.0.0/rust/tests/snapshots/test_nom_from_file__diet.snap → parse_lp-3.0.2/rust/tests/snapshots/test_from_file__diet.snap +1 -1
- parse_lp-3.0.0/rust/tests/snapshots/test_nom_from_file__empty_bounds.snap → parse_lp-3.0.2/rust/tests/snapshots/test_from_file__empty_bounds.snap +1 -1
- parse_lp-3.0.0/rust/tests/snapshots/test_nom_from_file__fit1d.snap → parse_lp-3.0.2/rust/tests/snapshots/test_from_file__fit1d.snap +1 -1
- parse_lp-3.0.0/rust/tests/snapshots/test_nom_from_file__infile_comments.snap → parse_lp-3.0.2/rust/tests/snapshots/test_from_file__infile_comments.snap +1 -1
- parse_lp-3.0.0/rust/tests/snapshots/test_nom_from_file__infile_comments2.snap → parse_lp-3.0.2/rust/tests/snapshots/test_from_file__infile_comments2.snap +1 -1
- parse_lp-3.0.0/rust/tests/snapshots/test_nom_from_file__kb2.snap → parse_lp-3.0.2/rust/tests/snapshots/test_from_file__kb2.snap +1 -1
- parse_lp-3.0.0/rust/tests/snapshots/test_nom_from_file__limbo.snap → parse_lp-3.0.2/rust/tests/snapshots/test_from_file__limbo.snap +1 -1
- parse_lp-3.0.0/rust/tests/snapshots/test_nom_from_file__lol.snap → parse_lp-3.0.2/rust/tests/snapshots/test_from_file__lol.snap +1 -1
- parse_lp-3.0.0/rust/tests/snapshots/test_nom_from_file__milo1.snap → parse_lp-3.0.2/rust/tests/snapshots/test_from_file__milo1.snap +1 -1
- parse_lp-3.0.0/rust/tests/snapshots/test_nom_from_file__missing_signs.snap → parse_lp-3.0.2/rust/tests/snapshots/test_from_file__missing_signs.snap +1 -1
- parse_lp-3.0.0/rust/tests/snapshots/test_nom_from_file__model.snap → parse_lp-3.0.2/rust/tests/snapshots/test_from_file__model.snap +1 -1
- parse_lp-3.0.0/rust/tests/snapshots/test_nom_from_file__model2.snap → parse_lp-3.0.2/rust/tests/snapshots/test_from_file__model2.snap +1 -1
- parse_lp-3.0.0/rust/tests/snapshots/test_nom_from_file__mosek.snap → parse_lp-3.0.2/rust/tests/snapshots/test_from_file__mosek.snap +1 -1
- parse_lp-3.0.0/rust/tests/snapshots/test_nom_from_file__mosek_bounds.snap → parse_lp-3.0.2/rust/tests/snapshots/test_from_file__mosek_bounds.snap +1 -1
- parse_lp-3.0.0/rust/tests/snapshots/test_nom_from_file__nom_fit2d.snap → parse_lp-3.0.2/rust/tests/snapshots/test_from_file__nom_fit2d.snap +1 -1
- parse_lp-3.0.0/rust/tests/snapshots/test_nom_from_file__obj3_2cons.snap → parse_lp-3.0.2/rust/tests/snapshots/test_from_file__obj3_2cons.snap +1 -1
- parse_lp-3.0.0/rust/tests/snapshots/test_nom_from_file__obj_1cons_all_variables_with_bounds.snap → parse_lp-3.0.2/rust/tests/snapshots/test_from_file__obj_1cons_all_variables_with_bounds.snap +1 -1
- parse_lp-3.0.0/rust/tests/snapshots/test_nom_from_file__obj_2cons_all_variable_types.snap → parse_lp-3.0.2/rust/tests/snapshots/test_from_file__obj_2cons_all_variable_types.snap +1 -1
- parse_lp-3.0.0/rust/tests/snapshots/test_nom_from_file__obj_2cons_only_binary_vars.snap → parse_lp-3.0.2/rust/tests/snapshots/test_from_file__obj_2cons_only_binary_vars.snap +1 -1
- parse_lp-3.0.0/rust/tests/snapshots/test_nom_from_file__output.snap → parse_lp-3.0.2/rust/tests/snapshots/test_from_file__output.snap +1 -1
- parse_lp-3.0.0/rust/tests/snapshots/test_nom_from_file__output2_1.snap → parse_lp-3.0.2/rust/tests/snapshots/test_from_file__output2_1.snap +1 -1
- parse_lp-3.0.0/rust/tests/snapshots/test_nom_from_file__output2_2.snap → parse_lp-3.0.2/rust/tests/snapshots/test_from_file__output2_2.snap +1 -1
- parse_lp-3.0.0/rust/tests/snapshots/test_nom_from_file__output2_3.snap → parse_lp-3.0.2/rust/tests/snapshots/test_from_file__output2_3.snap +1 -1
- parse_lp-3.0.0/rust/tests/snapshots/test_nom_from_file__output2_4.snap → parse_lp-3.0.2/rust/tests/snapshots/test_from_file__output2_4.snap +1 -1
- parse_lp-3.0.0/rust/tests/snapshots/test_nom_from_file__pulp.snap → parse_lp-3.0.2/rust/tests/snapshots/test_from_file__pulp.snap +1 -1
- parse_lp-3.0.0/rust/tests/snapshots/test_nom_from_file__test2.snap → parse_lp-3.0.2/rust/tests/snapshots/test_from_file__pulp2.snap +1 -1
- parse_lp-3.0.0/rust/tests/snapshots/test_nom_from_file__sc50a.snap → parse_lp-3.0.2/rust/tests/snapshots/test_from_file__sc50a.snap +1 -1
- parse_lp-3.0.0/rust/tests/snapshots/test_nom_from_file__scientific_notation.snap → parse_lp-3.0.2/rust/tests/snapshots/test_from_file__scientific_notation.snap +1 -1
- parse_lp-3.0.0/rust/tests/snapshots/test_nom_from_file__scientific_notation_2.snap → parse_lp-3.0.2/rust/tests/snapshots/test_from_file__scientific_notation_2.snap +1 -1
- parse_lp-3.0.0/rust/tests/snapshots/test_nom_from_file__sos.snap → parse_lp-3.0.2/rust/tests/snapshots/test_from_file__sos.snap +1 -1
- parse_lp-3.0.0/rust/tests/snapshots/test_nom_from_file__sudoku.snap → parse_lp-3.0.2/rust/tests/snapshots/test_from_file__sudoku.snap +1 -1
- parse_lp-3.0.0/rust/tests/snapshots/test_nom_from_file__test.snap → parse_lp-3.0.2/rust/tests/snapshots/test_from_file__test.snap +1 -1
- parse_lp-3.0.0/rust/tests/snapshots/test_nom_from_file__pulp2.snap → parse_lp-3.0.2/rust/tests/snapshots/test_from_file__test2.snap +1 -1
- parse_lp-3.0.0/rust/tests/snapshots/test_nom_from_file__wbm.snap → parse_lp-3.0.2/rust/tests/snapshots/test_from_file__wbm.snap +1 -1
- parse_lp-3.0.0/rust/tests/snapshots/test_nom_from_file__whiskas_model_2.snap → parse_lp-3.0.2/rust/tests/snapshots/test_from_file__whiskas_model_2.snap +1 -1
- parse_lp-3.0.0/rust/tests/test_nom_from_file.rs → parse_lp-3.0.2/rust/tests/test_from_file.rs +0 -2
- parse_lp-3.0.2/rust/tests/test_lp_solvers_compat.rs +78 -0
- parse_lp-3.0.0/rust/src/lib.rs +0 -94
- parse_lp-3.0.0/rust/src/perf.rs +0 -376
- {parse_lp-3.0.0 → parse_lp-3.0.2}/Cargo.toml +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/LICENSE-APACHE +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/README.md +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/parse_lp/__init__.py +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/parse_lp/parse_lp.pyi +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/parse_lp/py.typed +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/pyproject.toml +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/python/.cargo/config.toml +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/python/.gitignore +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/python/CHANGELOG.md +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/python/LICENSE-APACHE +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/python/MANIFEST.in +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/python/Makefile +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/python/README.md +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/python/parse_lp/__init__.py +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/python/parse_lp/parse_lp.pyi +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/python/parse_lp/py.typed +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/python/resources/afiro.lp +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/python/src/lib.rs +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/python/tests/__init__.py +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/python/tests/conftest.py +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/python/tests/fixtures/afiro.lp +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/python/tests/fixtures/minimize.lp +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/python/tests/fixtures/simple.lp +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/python/tests/test_csv_writer.py +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/python/tests/test_lp_parser.py +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/python/tests/test_lp_writer.py +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/python/uv.lock +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/rust/CHANGELOG.md +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/rust/build.rs +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/rust/resources/1obj_1cons_all_variables_with_bounds.lp +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/rust/resources/2obj_2cons_all_variable_types.lp +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/rust/resources/2obj_2cons_only_binary_vars.lp +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/rust/resources/3obj_2cons.lp +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/rust/resources/AmericanSteelProblem.lp +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/rust/resources/BeerDistributionProblem.lp +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/rust/resources/ComputerPlantProblem.lp +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/rust/resources/WhiskasModel2.lp +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/rust/resources/afiro.lp +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/rust/resources/afiro_ext.lp +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/rust/resources/blank_lines.lp +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/rust/resources/boeing1.lp +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/rust/resources/boeing2.lp +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/rust/resources/complex_names.lp +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/rust/resources/corrupt.lp +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/rust/resources/cplex.lp +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/rust/resources/diet.lp +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/rust/resources/empty_bounds.lp +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/rust/resources/fit1d.lp +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/rust/resources/fit2d.lp +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/rust/resources/infile_comments.lp +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/rust/resources/infile_comments2.lp +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/rust/resources/invalid.lp +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/rust/resources/kb2.lp +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/rust/resources/limbo.lp +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/rust/resources/lol.lp +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/rust/resources/milo1.lp +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/rust/resources/missing_signs.lp +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/rust/resources/model.lp +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/rust/resources/model2.lp +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/rust/resources/mosek.lp +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/rust/resources/mosek_bounds.lp +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/rust/resources/no_end_section.lp +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/rust/resources/optional_labels.lp +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/rust/resources/output.lp +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/rust/resources/output2_1.lp +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/rust/resources/output2_2.lp +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/rust/resources/output2_3.lp +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/rust/resources/output2_4.lp +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/rust/resources/output_cplex_2.lp +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/rust/resources/pulp.lp +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/rust/resources/pulp2.lp +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/rust/resources/sc50a.lp +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/rust/resources/scientific_notation.lp +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/rust/resources/scientific_notation_2.lp +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/rust/resources/semi_continuous.lp +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/rust/resources/sos.lp +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/rust/resources/sudoku.lp +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/rust/resources/test.lp +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/rust/resources/test2.lp +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/rust/resources/test_copy.lp +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/rust/resources/wbm.lp +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/rust/src/bin/main.rs +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/rust/src/builder.rs +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/rust/src/context.rs +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/rust/src/csv.rs +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/rust/src/error.rs +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/rust/src/lexer.rs +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/rust/src/lp.lalrpop +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/rust/src/parser.rs +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/rust/src/problem.rs +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/rust/src/snapshots/lp_parser_rs__problem__test__complete_input.snap +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/rust/src/snapshots/lp_parser_rs__problem__test__minified_example.snap +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/rust/src/snapshots/lp_parser_rs__problem__test__small_input.snap +0 -0
- {parse_lp-3.0.0 → parse_lp-3.0.2}/rust/src/writer.rs +0 -0
|
@@ -201,6 +201,22 @@ version = "1.0.2"
|
|
|
201
201
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
202
202
|
checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f"
|
|
203
203
|
|
|
204
|
+
[[package]]
|
|
205
|
+
name = "errno"
|
|
206
|
+
version = "0.3.14"
|
|
207
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
208
|
+
checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb"
|
|
209
|
+
dependencies = [
|
|
210
|
+
"libc",
|
|
211
|
+
"windows-sys 0.61.2",
|
|
212
|
+
]
|
|
213
|
+
|
|
214
|
+
[[package]]
|
|
215
|
+
name = "fastrand"
|
|
216
|
+
version = "2.3.0"
|
|
217
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
218
|
+
checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be"
|
|
219
|
+
|
|
204
220
|
[[package]]
|
|
205
221
|
name = "fixedbitset"
|
|
206
222
|
version = "0.5.7"
|
|
@@ -364,6 +380,12 @@ version = "0.2.178"
|
|
|
364
380
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
365
381
|
checksum = "37c93d8daa9d8a012fd8ab92f088405fb202ea0b6ab73ee2482ae66af4f42091"
|
|
366
382
|
|
|
383
|
+
[[package]]
|
|
384
|
+
name = "linux-raw-sys"
|
|
385
|
+
version = "0.11.0"
|
|
386
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
387
|
+
checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039"
|
|
388
|
+
|
|
367
389
|
[[package]]
|
|
368
390
|
name = "lock_api"
|
|
369
391
|
version = "0.4.14"
|
|
@@ -413,9 +435,19 @@ dependencies = [
|
|
|
413
435
|
"logos-codegen",
|
|
414
436
|
]
|
|
415
437
|
|
|
438
|
+
[[package]]
|
|
439
|
+
name = "lp-solvers"
|
|
440
|
+
version = "1.1.0"
|
|
441
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
442
|
+
checksum = "66359e50c955cfdb8a21a45289cfd2599ec4aaae1aa812a2dbebabdd8d9c185f"
|
|
443
|
+
dependencies = [
|
|
444
|
+
"quick-xml",
|
|
445
|
+
"tempfile",
|
|
446
|
+
]
|
|
447
|
+
|
|
416
448
|
[[package]]
|
|
417
449
|
name = "lp_parser_rs"
|
|
418
|
-
version = "3.0.
|
|
450
|
+
version = "3.0.2"
|
|
419
451
|
dependencies = [
|
|
420
452
|
"csv",
|
|
421
453
|
"diff-struct",
|
|
@@ -425,10 +457,9 @@ dependencies = [
|
|
|
425
457
|
"lalrpop-util",
|
|
426
458
|
"log",
|
|
427
459
|
"logos",
|
|
428
|
-
"
|
|
460
|
+
"lp-solvers",
|
|
429
461
|
"serde",
|
|
430
462
|
"serde_json",
|
|
431
|
-
"smallvec",
|
|
432
463
|
"thiserror",
|
|
433
464
|
"unique_id",
|
|
434
465
|
]
|
|
@@ -558,7 +589,7 @@ dependencies = [
|
|
|
558
589
|
|
|
559
590
|
[[package]]
|
|
560
591
|
name = "parse_lp"
|
|
561
|
-
version = "3.0.
|
|
592
|
+
version = "3.0.2"
|
|
562
593
|
dependencies = [
|
|
563
594
|
"lp_parser_rs",
|
|
564
595
|
"pyo3",
|
|
@@ -714,6 +745,15 @@ dependencies = [
|
|
|
714
745
|
"syn 2.0.111",
|
|
715
746
|
]
|
|
716
747
|
|
|
748
|
+
[[package]]
|
|
749
|
+
name = "quick-xml"
|
|
750
|
+
version = "0.38.4"
|
|
751
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
752
|
+
checksum = "b66c2058c55a409d601666cffe35f04333cf1013010882cec174a7467cd4e21c"
|
|
753
|
+
dependencies = [
|
|
754
|
+
"memchr",
|
|
755
|
+
]
|
|
756
|
+
|
|
717
757
|
[[package]]
|
|
718
758
|
name = "quote"
|
|
719
759
|
version = "1.0.42"
|
|
@@ -776,6 +816,19 @@ dependencies = [
|
|
|
776
816
|
"semver",
|
|
777
817
|
]
|
|
778
818
|
|
|
819
|
+
[[package]]
|
|
820
|
+
name = "rustix"
|
|
821
|
+
version = "1.1.2"
|
|
822
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
823
|
+
checksum = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e"
|
|
824
|
+
dependencies = [
|
|
825
|
+
"bitflags",
|
|
826
|
+
"errno",
|
|
827
|
+
"libc",
|
|
828
|
+
"linux-raw-sys",
|
|
829
|
+
"windows-sys 0.61.2",
|
|
830
|
+
]
|
|
831
|
+
|
|
779
832
|
[[package]]
|
|
780
833
|
name = "rustversion"
|
|
781
834
|
version = "1.0.22"
|
|
@@ -931,6 +984,19 @@ version = "0.13.3"
|
|
|
931
984
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
932
985
|
checksum = "df7f62577c25e07834649fc3b39fafdc597c0a3527dc1c60129201ccfcbaa50c"
|
|
933
986
|
|
|
987
|
+
[[package]]
|
|
988
|
+
name = "tempfile"
|
|
989
|
+
version = "3.23.0"
|
|
990
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
991
|
+
checksum = "2d31c77bdf42a745371d260a26ca7163f1e0924b64afa0b688e61b5a9fa02f16"
|
|
992
|
+
dependencies = [
|
|
993
|
+
"fastrand",
|
|
994
|
+
"getrandom",
|
|
995
|
+
"once_cell",
|
|
996
|
+
"rustix",
|
|
997
|
+
"windows-sys 0.61.2",
|
|
998
|
+
]
|
|
999
|
+
|
|
934
1000
|
[[package]]
|
|
935
1001
|
name = "term"
|
|
936
1002
|
version = "1.2.1"
|
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [3.0.2](https://github.com/dandxy89/lp_parser_rs/compare/parse_lp-v3.0.0...parse_lp-v3.0.2) (2025-12-07)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Miscellaneous Chores
|
|
7
|
+
|
|
8
|
+
* release 3.0.2 ([e6771bd](https://github.com/dandxy89/lp_parser_rs/commit/e6771bd29fda5fdb7fa4c424b7892b8fbd9678ea))
|
|
9
|
+
|
|
3
10
|
## [3.0.0](https://github.com/dandxy89/lp_parser_rs/compare/parse_lp-v2.6.2...parse_lp-v3.0.0) (2025-12-06)
|
|
4
11
|
|
|
5
12
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[package]
|
|
2
2
|
name = "lp_parser_rs"
|
|
3
|
-
version = "3.0.
|
|
3
|
+
version = "3.0.2"
|
|
4
4
|
edition = "2021"
|
|
5
5
|
authors = ["Dan Dixey", "Dan Dixey <dan@functorml.co.uk>"]
|
|
6
6
|
rust-version = "1.70.0"
|
|
@@ -32,11 +32,10 @@ path = "src/bin/main.rs"
|
|
|
32
32
|
csv = { version = "1.4.0", optional = true }
|
|
33
33
|
diff-struct = { version = "0.5.3", optional = true }
|
|
34
34
|
lalrpop-util = "0.22.2"
|
|
35
|
+
lp-solvers = { version = "1.1", optional = true }
|
|
35
36
|
log = "0.4.29"
|
|
36
37
|
logos = "0.15.1"
|
|
37
|
-
memchr = "2.7.6"
|
|
38
38
|
serde = { version = "1.0.228", features = ["derive"], optional = true }
|
|
39
|
-
smallvec = "1.15.1"
|
|
40
39
|
thiserror = "2.0.17"
|
|
41
40
|
unique_id = { version = "0.1.7", features = ["sequence"] }
|
|
42
41
|
|
|
@@ -52,7 +51,9 @@ serde_json = "1.0.145"
|
|
|
52
51
|
csv = ["dep:csv"]
|
|
53
52
|
default = []
|
|
54
53
|
diff = ["dep:diff-struct", "serde"]
|
|
54
|
+
lp-solvers = ["dep:lp-solvers"]
|
|
55
55
|
serde = ["dep:serde"]
|
|
56
|
+
test-cbc = ["lp-solvers"]
|
|
56
57
|
|
|
57
58
|
[package.metadata.cargo-machete]
|
|
58
59
|
ignored = ["diff-struct"]
|
|
@@ -10,6 +10,8 @@
|
|
|
10
10
|
|
|
11
11
|
A robust Rust library for parsing, modifying, and writing Linear Programming (LP) files. Built on the [LALRPOP](https://github.com/lalrpop/lalrpop) parser generator, this crate provides comprehensive support for the LP file format with the ability to parse, programmatically modify, and regenerate LP files according to major industry specifications.
|
|
12
12
|
|
|
13
|
+
The Grammar is defined with the [lp.lalrpop](/rust/src/lp.lalrpop) file - should you be curious...
|
|
14
|
+
|
|
13
15
|
### Supported Specifications
|
|
14
16
|
|
|
15
17
|
- [IBM CPLEX v22.1.1](https://www.ibm.com/docs/en/icos/22.1.1?topic=cplex-lp-file-format-algebraic-representation)
|
|
@@ -54,7 +56,7 @@ Add to your `Cargo.toml`:
|
|
|
54
56
|
|
|
55
57
|
```toml
|
|
56
58
|
[dependencies]
|
|
57
|
-
lp_parser_rs = "
|
|
59
|
+
lp_parser_rs = "3.0.0" # x-release-please-version
|
|
58
60
|
```
|
|
59
61
|
|
|
60
62
|
### Basic Usage
|
|
@@ -127,9 +129,55 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
|
|
|
127
129
|
|
|
128
130
|
```toml
|
|
129
131
|
[dependencies]
|
|
130
|
-
lp_parser_rs = { version = "
|
|
132
|
+
lp_parser_rs = { version = "3.0.0", features = ["serde", "diff"] } # x-release-please-version
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
### Solving with External Solvers (`lp-solvers` feature)
|
|
136
|
+
|
|
137
|
+
Enable the `lp-solvers` feature to solve parsed LP problems using external solvers like CBC, Gurobi, CPLEX, or GLPK via the [lp-solvers](https://crates.io/crates/lp-solvers) crate:
|
|
138
|
+
|
|
139
|
+
```toml
|
|
140
|
+
[dependencies]
|
|
141
|
+
lp_parser_rs = { version = "3.0.0", features = ["lp-solvers"] } # x-release-please-version
|
|
142
|
+
lp-solvers = "1.1"
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
```rust
|
|
146
|
+
use lp_parser_rs::{problem::LpProblem, ToLpSolvers};
|
|
147
|
+
use lp_solvers::solvers::{CbcSolver, SolverTrait};
|
|
148
|
+
|
|
149
|
+
fn main() -> Result<(), Box<dyn std::error::Error>> {
|
|
150
|
+
let lp_content = r"
|
|
151
|
+
Minimize
|
|
152
|
+
obj: 2 x + 3 y
|
|
153
|
+
Subject To
|
|
154
|
+
c1: x + y <= 10
|
|
155
|
+
c2: x >= 2
|
|
156
|
+
Bounds
|
|
157
|
+
x >= 0
|
|
158
|
+
y >= 0
|
|
159
|
+
End
|
|
160
|
+
";
|
|
161
|
+
|
|
162
|
+
let problem = LpProblem::parse(lp_content)?;
|
|
163
|
+
let compat = problem.to_lp_solvers()?;
|
|
164
|
+
|
|
165
|
+
// Check for any compatibility warnings
|
|
166
|
+
for warning in compat.warnings() {
|
|
167
|
+
eprintln!("Warning: {}", warning);
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
// Solve using CBC solver (must be installed on your system)
|
|
171
|
+
let solver = CbcSolver::new();
|
|
172
|
+
let solution = solver.run(&compat)?;
|
|
173
|
+
println!("Solution status: {:?}", solution.status);
|
|
174
|
+
|
|
175
|
+
Ok(())
|
|
176
|
+
}
|
|
131
177
|
```
|
|
132
178
|
|
|
179
|
+
**Limitations:** The lp-solvers compatibility layer does not support multiple objectives (returns an error), strict inequalities (`<`, `>`), or SOS constraints (ignored with a warning).
|
|
180
|
+
|
|
133
181
|
## API Reference
|
|
134
182
|
|
|
135
183
|
### Problem Modification Methods
|
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [3.0.2](https://github.com/dandxy89/lp_parser_rs/compare/lp_parser_rs-v3.0.1...lp_parser_rs-v3.0.2) (2025-12-07)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Miscellaneous Chores
|
|
7
|
+
|
|
8
|
+
* release 3.0.2 ([e6771bd](https://github.com/dandxy89/lp_parser_rs/commit/e6771bd29fda5fdb7fa4c424b7892b8fbd9678ea))
|
|
9
|
+
|
|
10
|
+
## [3.0.1](https://github.com/dandxy89/lp_parser_rs/compare/lp_parser_rs-v3.0.0...lp_parser_rs-v3.0.1) (2025-12-07)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Miscellaneous Chores
|
|
14
|
+
|
|
15
|
+
* Remove unused consts ([74a363e](https://github.com/dandxy89/lp_parser_rs/commit/74a363eb2eb96eee2e516e0ce0dfff6cd69d76d8))
|
|
16
|
+
|
|
3
17
|
## [3.0.0](https://github.com/dandxy89/lp_parser_rs/compare/lp_parser_rs-v2.5.2...lp_parser_rs-v3.0.0) (2025-12-06)
|
|
4
18
|
|
|
5
19
|
|