Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
189 commits
Select commit Hold shift + click to select a range
feead09
WCNF parser
ThomSerg Sep 11, 2025
5ade48e
Small docstring change
ThomSerg Sep 11, 2025
7f52f5f
OPB parser
ThomSerg Sep 11, 2025
548de8e
Move parser out of init and add cli
ThomSerg Sep 12, 2025
4505025
Add MSE and OPB datasets
ThomSerg Sep 12, 2025
2b26034
Rename datasets to dataset
ThomSerg Sep 12, 2025
e238c29
Dataset specific 'open'
ThomSerg Sep 12, 2025
669875a
Dataset module init file
ThomSerg Sep 12, 2025
c1bd2fe
Add benchmark runners
ThomSerg Sep 12, 2025
83454e0
Formatting
ThomSerg Sep 12, 2025
7f2d363
XCSP3 as dataset and benchmark
ThomSerg Sep 12, 2025
9173c9f
Parsers with changeable 'open'
ThomSerg Sep 12, 2025
52b95de
Type-hints and docstrings
ThomSerg Sep 12, 2025
bf5ecd2
Add TODOs
ThomSerg Sep 12, 2025
5dc3886
Mising helper functions
ThomSerg Sep 12, 2025
7209c62
Print stacktrace of process
ThomSerg Sep 12, 2025
f66c8c5
Fix arguments
ThomSerg Sep 12, 2025
6ab8b32
Fix overwritten open
ThomSerg Sep 12, 2025
34c8a9e
Read as string instead of StringIO
ThomSerg Sep 12, 2025
fd55b3a
Read as text instead of binary
ThomSerg Sep 12, 2025
2be9fa6
Sigterm callbacks
ThomSerg Sep 12, 2025
2e64623
Attempt at fixing some nested memory exceptions
ThomSerg Sep 12, 2025
5b92680
Overwritable exit status
ThomSerg Sep 12, 2025
8fff254
Validate dataset arguments
ThomSerg Sep 12, 2025
2b4a8f0
Check non-empty dataset
ThomSerg Sep 12, 2025
b68144d
Add feedback finished downloading
ThomSerg Sep 12, 2025
b08df43
Small fixes
ThomSerg Sep 12, 2025
431b065
Fix intermediate solutions and time tracking
ThomSerg Oct 10, 2025
7d98c35
Increase intermediate solution time resolution
ThomSerg Oct 10, 2025
4664051
Missing default return argument
ThomSerg Oct 10, 2025
582fc96
Only import "resource" when supported
ThomSerg Oct 17, 2025
2eea41c
remove var x0 which is not used in opb
OrestisLomis Oct 23, 2025
6111fc4
rcpsp dataset and benchmark
ThomSerg Oct 24, 2025
af36c87
opb fix intermediate solutions
ThomSerg Oct 24, 2025
a834387
update docstrings
ThomSerg Oct 24, 2025
8805cad
Fix more docstring
ThomSerg Oct 24, 2025
ce6b6bc
Add JSPLib dataset and benchmark
ThomSerg Oct 24, 2025
9098299
Add bounds for all jsplib instances
ThomSerg Oct 24, 2025
658967d
Fix choco args
ThomSerg Oct 25, 2025
eb41634
Merge branch 'benchmark_datasets' of https://github.com/CPMpy/cpmpy i…
ThomSerg Oct 25, 2025
38db290
Fixes
ThomSerg Oct 25, 2025
41e3768
Merge remote-tracking branch 'origin/master' into benchmark_datasets
ThomSerg Oct 27, 2025
62b605d
correct jsplib output file name
ThomSerg Nov 3, 2025
ddf6938
remove matplotlib import
ThomSerg Nov 3, 2025
344aaaf
xcsp3 track intermediate sol time
ThomSerg Nov 3, 2025
7cd1bb1
opb print intermediate solutions
ThomSerg Nov 3, 2025
a21a040
mse print intermediate solutions
ThomSerg Nov 3, 2025
eda839c
cplex and hexaly solver arguments
ThomSerg Nov 3, 2025
0bd0daa
Merge branch 'master' into benchmark_datasets
ThomSerg Jan 6, 2026
2004cfe
Add nurse rostering dataset
ThomSerg Jan 6, 2026
8b76fd3
Remove left-over print statement
ThomSerg Jan 6, 2026
e59fa99
small docstring
ThomSerg Jan 6, 2026
c8729af
Nurserostering parser tool
ThomSerg Jan 6, 2026
dd8fe9b
Nurserostering benchmark
ThomSerg Jan 6, 2026
30c9e48
ensutre soft is lower
ThomSerg Jan 6, 2026
5eb8b57
make sure path exists
ThomSerg Jan 6, 2026
cef1ab3
prototype runner
ThomSerg Jan 6, 2026
5611bf0
test_examples: missing comma in skip list
tias Jan 7, 2026
b1e6793
Missing packaging in setup.py (#813)
ThomSerg Jan 7, 2026
841a8ab
Expand CNF using encoding back-end (#782)
hbierlee Jan 8, 2026
1ac8f7c
Change `cp.sum(*iterable, **kwargs)` to `cp.sum(iterable, **kwargs)` …
hbierlee Jan 9, 2026
e30bec7
add hexaly to readme, name it a global opt solver (#767)
tias Jan 12, 2026
1186d28
Fix/bug810 handle pdk unsat with conditions (#811)
hbierlee Jan 12, 2026
76d19dc
miplib dataset
ThomSerg Jan 20, 2026
54031bd
start of reader and writer
ThomSerg Jan 20, 2026
3c5e1bc
move datastructures from class to instance level
ThomSerg Jan 22, 2026
b353a95
Fix parser and add objective transformation
ThomSerg Jan 22, 2026
73ea3de
Add basic tests
ThomSerg Jan 22, 2026
5b32da1
Add SCIP as reader/writer tool
ThomSerg Jan 29, 2026
a5fd596
Merge branch 'miplib' into benchmark_datasets
ThomSerg Jan 29, 2026
7138a20
Add dataset name as metadata
ThomSerg Jan 29, 2026
f5d40c5
Setup add io deps
ThomSerg Jan 29, 2026
b3aaf70
generic IO module
ThomSerg Jan 29, 2026
cb10ab8
Dimacs add header support
ThomSerg Jan 29, 2026
b4be3aa
Dimacs check for objective
ThomSerg Jan 29, 2026
dc34e6e
Move IO tools
ThomSerg Jan 29, 2026
ae75200
add tools to IO module
ThomSerg Jan 29, 2026
df93d35
Add comment
ThomSerg Jan 29, 2026
d6e3f97
Add docstring
ThomSerg Jan 29, 2026
06cf736
Move datasets to shared directory
ThomSerg Jan 29, 2026
4c54114
convert JSPLibDataset to _Dataset subclass
ThomSerg Jan 29, 2026
a601711
support nested files
ThomSerg Jan 29, 2026
2240e0c
opb nested files and competition filter
ThomSerg Jan 29, 2026
00cd3c9
More _Dataset subclassing
ThomSerg Jan 29, 2026
e57c533
Fix metadata order
ThomSerg Jan 30, 2026
132725d
re-usable dataset downloader
ThomSerg Jan 30, 2026
d85aeb2
nurserostering reuse downloader
ThomSerg Jan 30, 2026
61b0c42
Improve all datasets
ThomSerg Jan 30, 2026
0c838b6
add dataset classes to module
ThomSerg Jan 30, 2026
3476620
Simplify __main__
ThomSerg Jan 30, 2026
5fbc2ee
small tweaks to readers and writers
ThomSerg Jan 30, 2026
c4e6b3b
Add Ignace's opb writer
ThomSerg Jan 30, 2026
52e905d
add writer to module
ThomSerg Jan 30, 2026
52a3948
small change to docstring
ThomSerg Jan 30, 2026
0ef45ce
Merge branch 'benchmark_datasets' into observer_pattern
ThomSerg Feb 3, 2026
8005700
update io
ThomSerg Feb 4, 2026
8e7fb1c
update base
ThomSerg Feb 4, 2026
67643b3
add observers
ThomSerg Feb 4, 2026
dd53ae0
Collection of other changes
ThomSerg Feb 4, 2026
804c96f
setup command
ThomSerg Feb 4, 2026
7180214
fix for pinac
ThomSerg Feb 4, 2026
ad0d061
update to new IO location
ThomSerg Feb 11, 2026
7a48b1e
Update writers
ThomSerg Feb 12, 2026
0baaeb2
fix import
ThomSerg Feb 12, 2026
017e1a2
experimental metadata collection
ThomSerg Feb 12, 2026
95198ff
experimental download origin
ThomSerg Feb 12, 2026
41ee111
imports
ThomSerg Feb 12, 2026
f477159
dataset cli
ThomSerg Feb 12, 2026
31b0aee
remove duplicate writer
ThomSerg Feb 12, 2026
4bedebd
Dataset transform helpers
ThomSerg Feb 12, 2026
0b36a56
Cleanup dataset base
ThomSerg Feb 13, 2026
671eeb4
Remove duplicate methods
ThomSerg Feb 13, 2026
ca67973
simplify metadata logic
ThomSerg Feb 13, 2026
21ea64b
More IO optional dependencies
ThomSerg Feb 13, 2026
782ad0d
clarify name
ThomSerg Feb 13, 2026
7bd68da
support multiple citations
ThomSerg Feb 13, 2026
f36e213
Consistent dataset objects
ThomSerg Feb 16, 2026
a86544f
Remove domain and format tags
ThomSerg Feb 16, 2026
ece1fc7
consistent reader/parser/loader naming
ThomSerg Feb 17, 2026
048ad1b
writer auto format detection
ThomSerg Feb 17, 2026
655dd86
Merge branch 'observer_pattern' into benchmark_datasets
ThomSerg Feb 17, 2026
75585c6
Merge branch 'master' into benchmark_datasets
ThomSerg Feb 17, 2026
85f2f98
Metadata collection
ThomSerg Feb 28, 2026
9bba9b4
Move to datasets
ThomSerg Feb 28, 2026
e89601e
xcsp3 io tool
ThomSerg Feb 28, 2026
59623af
io tool all pip install
ThomSerg Feb 28, 2026
6e803ce
Dataset class hierarchy
ThomSerg Mar 1, 2026
9e0bbdc
Dataset metadata properties
ThomSerg Mar 1, 2026
0d88403
_loader
ThomSerg Mar 1, 2026
783504b
utils
ThomSerg Mar 1, 2026
a76560f
Fix paths
ThomSerg Mar 1, 2026
86eaf16
Files and generator datasets
ThomSerg Mar 1, 2026
ee5a030
SAT dataset
ThomSerg Mar 1, 2026
5335c43
More expressive generator datasets
ThomSerg Mar 1, 2026
c46cf03
Dataset metadata classproperty
ThomSerg Mar 1, 2026
ea40e28
Vastly expanded metadata system based on industry best practices
ThomSerg Mar 2, 2026
a1b421f
Model objects metadata
ThomSerg Mar 2, 2026
cad1228
Refactor and document datasets core
ThomSerg Mar 5, 2026
d99b77c
Clean utils
ThomSerg Mar 5, 2026
b425c22
Remove unused config
ThomSerg Mar 5, 2026
5424821
Refactor metadata
ThomSerg Mar 5, 2026
df426ea
Fix imports and names
ThomSerg Mar 6, 2026
fdad3db
Update datasets
ThomSerg Mar 6, 2026
766112a
opb writer fix transformations
ThomSerg Mar 6, 2026
9d7dade
scip small changes
ThomSerg Mar 6, 2026
e127311
path rename
ThomSerg Mar 6, 2026
81b88a3
Move dimacs
ThomSerg Mar 6, 2026
3bd4db8
Fix imports
ThomSerg Mar 6, 2026
94a0211
Writer compression option
ThomSerg Mar 6, 2026
e019155
Small fixes to metadata
ThomSerg Mar 6, 2026
aa1303a
Start of docs
ThomSerg Mar 6, 2026
e3d647f
Merge remote-tracking branch 'origin/master' into benchmark_datasets
ThomSerg Mar 9, 2026
b542c6e
Wcnf reader and writer
ThomSerg Mar 11, 2026
2aa5ed7
Dimacs loader support raw strings
ThomSerg Mar 11, 2026
b3478bf
Consistent IO naming
ThomSerg Mar 11, 2026
974df6b
Make datasets consistent with paper: remove loader
ThomSerg Mar 11, 2026
f4dd1ab
Add / update docs
ThomSerg Mar 11, 2026
cf221b5
Add missing wcnf parts
ThomSerg Mar 11, 2026
c1e3b5f
Slim down to core changes
ThomSerg Apr 1, 2026
d4fcaea
Add optional parametrised tests
ThomSerg Apr 1, 2026
60a607b
limit scope even more
ThomSerg Apr 1, 2026
fd88c5b
Remove future mps file
ThomSerg Apr 1, 2026
364412a
small cleanup
ThomSerg Apr 1, 2026
18cec3a
Merge branch 'master' into dataset_core
ThomSerg Apr 14, 2026
2d31bfe
Limit pr scope to just datasets
ThomSerg Apr 14, 2026
7449578
Update docstring
ThomSerg Apr 14, 2026
92423c9
Remove unused imports
ThomSerg Apr 14, 2026
7e0c3c7
Cleanup
ThomSerg Apr 14, 2026
7253a94
Update from_files
ThomSerg Apr 14, 2026
e7bf227
Remove metadata portability check
ThomSerg Apr 14, 2026
66bc881
cleanup xcsp3 dataset
ThomSerg Apr 14, 2026
8cf4823
remove future feature metadata
ThomSerg Apr 14, 2026
dd20c80
simplify conftest
ThomSerg Apr 14, 2026
0979e72
Make mypy happy
ThomSerg Apr 15, 2026
4f66d84
Update github action
ThomSerg Apr 15, 2026
6e0aaa1
Docstring changes
ThomSerg Apr 17, 2026
62b985c
More robust instance name extraction
ThomSerg Apr 17, 2026
d01a076
Remove IndexedDataset
ThomSerg Apr 17, 2026
049549c
Update docstring
ThomSerg Apr 17, 2026
668e7f5
tweaks
tias Apr 21, 2026
f1c71e7
Merge branch 'master' into dataset_core
ThomSerg Jun 12, 2026
f75b4a6
Remove TODOs, for later PR
ThomSerg Jun 12, 2026
6d46567
Remove custom download pretty printer
ThomSerg Jun 12, 2026
1d4673e
Convert raise to pass
ThomSerg Jun 12, 2026
5c0510f
Simplify
ThomSerg Jun 15, 2026
041b0c9
Update file docstring
ThomSerg Jun 15, 2026
f003a22
Move classproperty to definition-time check
ThomSerg Jun 15, 2026
8dbc763
Add typing
ThomSerg Jun 15, 2026
5dd6176
API documentation datasets
ThomSerg Jun 15, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 1 addition & 3 deletions .github/workflows/python-linting.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,10 @@ jobs:
uses: actions/setup-python@v5
with:
python-version: '3.10'
- name: Install Mypy
run: pip install mypy
- name: Install dependencies
run: |
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
pip install ".[test]"
pip install ".[type, test]"
- name: Run Mypy
uses: liskin/gh-problem-matcher-wrap@v2 # wrap mypy output as annotations
with:
Expand Down
1 change: 1 addition & 0 deletions cpmpy/tools/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@

explain
dimacs
datasets
maximal_propagate
tune_solver
xcsp3
Expand Down
47 changes: 47 additions & 0 deletions cpmpy/tools/datasets/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
#!/usr/bin/env python
# -*- coding:utf-8 -*-
##
## __init__.py
##
"""
PyTorch-style dataset interface for Constraint Optimisation (CO) benchmarks.

CPMpy provides a PyTorch-style dataset interface for loading and iterating over
benchmark instance collections. Each dataset handles downloading, file discovery,
metadata collection, and decompression automatically.

===============
List of classes
===============

.. autosummary::
:nosignatures:

Dataset
FileDataset

================
List of datasets
================

.. autosummary::
:nosignatures:

XCSP3Dataset
"""

from .core import (
Dataset,
FileDataset,
)
from .xcsp3 import XCSP3Dataset


__all__ = [
# Base
"Dataset",
"FileDataset",
# Datasets
"XCSP3Dataset",
]

Loading
Loading