specsolve 0.1.0__py3-none-any.whl
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.
- specsolve/__init__.py +71 -0
- specsolve/api.py +744 -0
- specsolve/archive.py +172 -0
- specsolve/assumptions.py +82 -0
- specsolve/errors.py +175 -0
- specsolve/expressions.py +82 -0
- specsolve/frames.py +139 -0
- specsolve/lanes.py +147 -0
- specsolve/layout.py +216 -0
- specsolve/py.typed +0 -0
- specsolve/relational/__init__.py +16 -0
- specsolve/relational/collect.py +26 -0
- specsolve/relational/engines/__init__.py +10 -0
- specsolve/relational/engines/polars/__init__.py +6 -0
- specsolve/relational/engines/polars/assembly.py +678 -0
- specsolve/relational/engines/polars/attaching.py +115 -0
- specsolve/relational/engines/polars/compiler.py +681 -0
- specsolve/relational/engines/polars/coverage.py +220 -0
- specsolve/relational/engines/polars/engine.py +514 -0
- specsolve/relational/engines/polars/fragments.py +478 -0
- specsolve/relational/engines/polars/labels.py +222 -0
- specsolve/relational/engines/polars/predicates.py +437 -0
- specsolve/relational/engines/polars/readback.py +315 -0
- specsolve/relational/engines/polars/reindex.py +381 -0
- specsolve/relational/engines/polars/relations.py +219 -0
- specsolve/relational/engines/polars/scope.py +159 -0
- specsolve/relational/parquet.py +441 -0
- specsolve/relational/result.py +829 -0
- specsolve/relational/sinks/README.md +200 -0
- specsolve/relational/sinks/__init__.py +118 -0
- specsolve/relational/sinks/capabilities.py +126 -0
- specsolve/relational/sinks/handoff.py +419 -0
- specsolve/relational/sinks/solvers/__init__.py +84 -0
- specsolve/relational/sinks/solvers/base.py +366 -0
- specsolve/relational/sinks/solvers/gurobi.py +538 -0
- specsolve/relational/sinks/solvers/highs.py +419 -0
- specsolve/relational/sinks/solvers/xpress.py +359 -0
- specsolve/relational/sinks/writers/__init__.py +51 -0
- specsolve/relational/sinks/writers/base.py +51 -0
- specsolve/relational/sinks/writers/lp_file.py +280 -0
- specsolve/relational/sinks/writers/mps_file.py +211 -0
- specsolve/relational/status.py +71 -0
- specsolve/sources.py +622 -0
- specsolve/strategy.py +1916 -0
- specsolve-0.1.0.dist-info/METADATA +176 -0
- specsolve-0.1.0.dist-info/RECORD +48 -0
- specsolve-0.1.0.dist-info/WHEEL +4 -0
- specsolve-0.1.0.dist-info/licenses/LICENSE +21 -0
specsolve/__init__.py
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"""Declarative optimisation: YAML math on a streaming engine.
|
|
2
|
+
|
|
3
|
+
Specs build relationally on polars and stream to the solver — see
|
|
4
|
+
docs/about/architecture.md.
|
|
5
|
+
|
|
6
|
+
Example::
|
|
7
|
+
|
|
8
|
+
import specsolve as sps
|
|
9
|
+
|
|
10
|
+
result = sps.solve('spec.yaml', {'p_max': 'p_max.parquet', 'load': 'load.parquet'})
|
|
11
|
+
result.objective
|
|
12
|
+
result.primal('p') # tidy polars.DataFrame
|
|
13
|
+
result.to_dataarray('p') # labelled, for array post-processing
|
|
14
|
+
|
|
15
|
+
``__version__`` reads the installed metadata: the git tag is the source of
|
|
16
|
+
truth, and hatch-vcs bakes it in at build time. A source tree with nothing
|
|
17
|
+
installed reads ``0.0.0``.
|
|
18
|
+
"""
|
|
19
|
+
|
|
20
|
+
from importlib.metadata import PackageNotFoundError as _PackageNotFoundError
|
|
21
|
+
from importlib.metadata import version as _installed_version
|
|
22
|
+
|
|
23
|
+
from specsolve.api import Model, build, check, evaluate, load_result, scan_result, solve, write
|
|
24
|
+
from specsolve.archive import SolveArchive, SweepArchive, load_archive, scan_archive
|
|
25
|
+
from specsolve.errors import (
|
|
26
|
+
DataError,
|
|
27
|
+
DimensionError,
|
|
28
|
+
LanguageError,
|
|
29
|
+
LayoutError,
|
|
30
|
+
NoSolutionError,
|
|
31
|
+
SchemaError,
|
|
32
|
+
SpecsolveError,
|
|
33
|
+
SpecsolveWarning,
|
|
34
|
+
)
|
|
35
|
+
from specsolve.relational.result import Result
|
|
36
|
+
from specsolve.strategy import EachCoordinate, EachWindow, Sweep, load_sweep, scan_sweep, solve_over
|
|
37
|
+
|
|
38
|
+
__all__ = [
|
|
39
|
+
'DataError',
|
|
40
|
+
'DimensionError',
|
|
41
|
+
'EachCoordinate',
|
|
42
|
+
'EachWindow',
|
|
43
|
+
'LanguageError',
|
|
44
|
+
'LayoutError',
|
|
45
|
+
'Model',
|
|
46
|
+
'NoSolutionError',
|
|
47
|
+
'Result',
|
|
48
|
+
'SchemaError',
|
|
49
|
+
'SolveArchive',
|
|
50
|
+
'SpecsolveError',
|
|
51
|
+
'SpecsolveWarning',
|
|
52
|
+
'Sweep',
|
|
53
|
+
'SweepArchive',
|
|
54
|
+
'build',
|
|
55
|
+
'check',
|
|
56
|
+
'evaluate',
|
|
57
|
+
'load_archive',
|
|
58
|
+
'load_result',
|
|
59
|
+
'load_sweep',
|
|
60
|
+
'scan_archive',
|
|
61
|
+
'scan_result',
|
|
62
|
+
'scan_sweep',
|
|
63
|
+
'solve',
|
|
64
|
+
'solve_over',
|
|
65
|
+
'write',
|
|
66
|
+
]
|
|
67
|
+
|
|
68
|
+
try:
|
|
69
|
+
__version__ = _installed_version('specsolve')
|
|
70
|
+
except _PackageNotFoundError:
|
|
71
|
+
__version__ = '0.0.0'
|