jijmodeling 1.8.0__cp311-none-win_amd64.whl → 1.9.0__cp311-none-win_amd64.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.

Potentially problematic release.


This version of jijmodeling might be problematic. Click here for more details.

jijmodeling/__init__.pyi CHANGED
@@ -4,7 +4,7 @@
4
4
  import numpy
5
5
  import numpy.typing
6
6
  import typing
7
- from . import experimental
7
+ from . import range
8
8
  from enum import Enum, auto
9
9
 
10
10
  __version__: str
@@ -2793,12 +2793,18 @@ class Placeholder:
2793
2793
  -----------
2794
2794
  - `name` (`str`): A name of the placeholder.
2795
2795
  - `ndim` (`int`): The number of dimensions of the placeholder.
2796
+ - `shape` (`list` of `Optional[Expression]`, optional): The (partial) shape of the placeholder if given.
2797
+ - `dtype` (`DataType`, optional): The data type (`DataType.INT` or `DataType.FLOAT`) of the placeholder.
2798
+ - `jagged` (`boolean`, defaut: `False`): `True` if the placeholder will be treated as a jagged array in random data generation. Ignored for scalars.
2796
2799
  - `description` (`str`, optional): A description of the placeholder.
2797
2800
 
2798
2801
  Args
2799
2802
  -----
2800
2803
  - `name` (`str`): A name of the placeholder.
2801
- - `ndim` (`int`): The number of dimensions of the placeholder. Defaults to `0`. The `ndim` must be set to a non-negative value.
2804
+ - `ndim` (`Optional[int]`): The number of dimensions of the placeholder. Defaults to `0`. The `ndim` must be set to a non-negative value and must concide with the length of `shape` if both specified. If `None` is given, you must specify `shape` explicitly and the length of `shape` will be used.
2805
+ - `shape` (`list[Optional[Expression]]`, optional): The (partial) shape of the placeholder. Used for random data generation.
2806
+ - `dtype` (`DataType`, optional): The data type (`DataType.INT` or `DataType.FLOAT`) of the placeholder. Used for random data generation.
2807
+ - `jagged` (`boolean`, defaut: `False`): `True` if the placeholder will be treated as a jagged array in random data generation. Ignored for scalars.
2802
2808
  - `latex` (`str`, optional): A LaTeX-name of the placeholder to be represented in Jupyter notebook.
2803
2809
  It is set to `name` by default.
2804
2810
  - `description` (`str`, optional): A description of the placeholder.
@@ -2838,9 +2844,11 @@ class Placeholder:
2838
2844
  """
2839
2845
  name: str
2840
2846
  ndim: int
2847
+ dtype: typing.Optional[DataType]
2848
+ jagged: bool
2841
2849
  description: typing.Optional[str]
2842
2850
  shape: tuple
2843
- def __new__(cls,name,*,ndim = ...,latex = ...,description = ...): ...
2851
+ def __new__(cls,name,*,ndim = ...,shape = ...,dtype = ...,jagged = ...,latex = ...,description = ...): ...
2844
2852
  def len_at(self, axis,*,latex = ...,description = ...) -> ArrayLength:
2845
2853
  ...
2846
2854
 
@@ -3057,6 +3065,148 @@ class Problem:
3057
3065
  def used_placeholders(self) -> list[Placeholder]:
3058
3066
  ...
3059
3067
 
3068
+ def get_problem_schema(self) -> dict:
3069
+ r"""
3070
+ Returns the schema of the problem.
3071
+
3072
+ Returns
3073
+ --------
3074
+ - `schema`: The dictionary containing the schema of the problem.
3075
+ """
3076
+ ...
3077
+
3078
+ def generate_random_dataset(self, default = ...,options = ...,seed = ...) -> dict[str, float | numpy.typing.NDArray[numpy.float64] | JaggedArray]:
3079
+ r"""
3080
+ Generates a dictionary of random `InstanceDataValue` for a given problem.
3081
+ To generate `ommx.v1.Instance` object directly, use `InstanceDataValue.generate_random_instance` instead.
3082
+
3083
+ Args
3084
+ -----
3085
+ - `options` (optional): a dictionary of range parameters for each separate placeholders. The key must be the name of the placeholder and the value must be range parameter (as described in "Range Parameters and Range Syntax" below).
3086
+ - `default` (optional): default range parameters for placeholders which is not specified in `options`.
3087
+ - `seed` (optional): seed for random number generation.
3088
+
3089
+ Returns
3090
+ --------
3091
+ `dict`: The dictionary from the name of placeholders to the generated `InstanceDataValue` objects. To be fed to `Interpreter.eval_problem`.
3092
+
3093
+ Range Parameters and Range Syntax
3094
+ ----------------------------------
3095
+ A range parameter is a dictionary consisting of the following fields:
3096
+ - `size` (optional): interval of natural numbers for the size of each array dimension (default: `range(1, 6)`)
3097
+ - `value` (optional): interval of real numbers for the value of each array element (default: `range(-1.0, 1.0)` - a uniform distribution on a closed interval $[-1.0, 1.0]$).
3098
+
3099
+ Example range parameter config:
3100
+
3101
+ ```python
3102
+ {"size": range(2, 10), "value": jm.range.value.closed(100.0, 200.0)}
3103
+ ```
3104
+
3105
+ Intervals are expressed as a range object.
3106
+ Currently, the following syntax is supported for range objects:
3107
+
3108
+ 1. Direct value of type `int` or `float` - it corresponds to a singleton interval $[a, a] = \{a\}$. In random generation context, this just means a constant fixed value.
3109
+ 2. Use the functions from `jijmodeling.range`, `jijmodeling.range.size`, or `jijmodeling.range.value` modules.
3110
+ - Use functions from `jij.modeling.range.size` to specify (non-negative) integer intervals, and `jij.modeling.range.value` for real intervals. `jij.modeling.range` dynamically determines the type of the range based on the input.
3111
+ - These three modules provides the following combinators (see the module documents for more details.):
3112
+ - `closed(a, b)`: a closed interval $[a, b]$
3113
+ - `open(a, b)`: an open interval $(a, b)$
3114
+ - `closed_open(a, b)`: an upper half-open interval $[a, b)$
3115
+ - `open_closed(a, b)`: a lower half-open interval $(a, b]$
3116
+ - `greater_than(a)`: an open interval $(a, \infty)$
3117
+ - `at_least(a)`: a closed interval $[a, \infty)$
3118
+ - `less_than(a)`: an open interval $(-\infty, a)$
3119
+ - `at_most(a)`: a closed interval $(-\infty, a]$
3120
+ 3. Use `range` builtin function: this is equivalent to `jijmodeling.range.value.closed_open(a, b)`.
3121
+ - Any python range object with `step = 1` can be used as a size range; otherwise it results in runtime error.
3122
+ 4. Use a tuple: raw tuple `(a, b)` is equivalent to `jijmodeling.range.closed_open(a, b)` if `a` and `b` are either `int` or `float`.
3123
+ - You can also use bound object as a tuple component; in such case, both tuple components must be one of the following:
3124
+
3125
+ 1. A string `"Unbounded"` means $-\infty$ (in the first component) or $\infty$ (the second).
3126
+ 2. A dictionary `{"Included": a}` means the endpoint is inclusive.
3127
+ 3. A dictionary `{"Excluded": a}` means the endpoint is exclusive.
3128
+ - Examples:
3129
+ - `(1.2, 4)` is equivalent to `closed_open(1.2, 4)`,
3130
+ - `(-1, {"Included": 1})` is equivalent to `closed(-1, 1)`,
3131
+ - `(-5, {"Excluded": 4})` is equivalent to `closed_open(-5, 4)` and built in function `range(-5, 4)`,
3132
+ - `({"Excluded": 1}, {"Excluded": 2.5})` is equivalent to `open(1, 2.5)`,
3133
+ - `({"Included": -1}, "Unbounded")` is equivalent to `at_least(-1)`.
3134
+ - `(5, "Unbounded")` is **INVALID**; `5` must be bound object.
3135
+ 5. The range object: A dictionary of form `{"start": lb, "end": ub}`, where both `lb` and `ub` are the bound object described as above.
3136
+
3137
+ Examples
3138
+ ---------
3139
+ ```python
3140
+ >>> import jijmodeling as jm
3141
+ >>> import builtins
3142
+ >>> N = jm.Placeholder("N", dtype=jm.DataType.INTEGER)
3143
+ >>> c = jm.Placeholder("c", dtype=jm.DataType.FLOAT, shape=(N,))
3144
+ >>> x = jm.BinaryVar("x", shape=(N,))
3145
+ >>> i = jm.Element("i", belong_to=N)
3146
+
3147
+ >>> problem = jm.Problem("problem")
3148
+ >>> problem += jm.sum(i, c[i] * x[i])
3149
+
3150
+ >>> inputs = problem.generate_random_dataset(
3151
+ ... options={
3152
+ ... 'N': {"value": builtins.range(10, 20)},
3153
+ ... 'c': {"value": jm.range.value.closed(-1.0, 1.0)}
3154
+ ... # You can also specify "size" for the range of jagged array dimension size.
3155
+ ... },
3156
+ ... seed=123 # omittable
3157
+ ... )
3158
+ >>> assert set(inputs.keys()) == {"N", "c"}
3159
+ >>> inputs
3160
+ {'N': 11.0, 'c': array([ 0.93914459, -0.06511935, -0.7460324 , -0.32443706, 0.99981451,
3161
+ -0.24407535, 0.31329469, 0.52206453, -0.1291936 , 0.30443087,
3162
+ 0.53125838])}
3163
+
3164
+ ```
3165
+ """
3166
+ ...
3167
+
3168
+ def generate_random_instance(self, default = ...,options = ...,seed = ...) -> typing.Any:
3169
+ r"""
3170
+ Generates random `ommx.v1.Instance` for a given problem.
3171
+ See also `InstanceDataValue.generate_random_dataset`.
3172
+
3173
+ Args
3174
+ -----
3175
+ - `options` (optional): a dictionary of range parameters for each separate placeholders. The key must be the name of the placeholder and the value must be range parameter (as described in "Range Parameters and Range Syntax" section in :func:`~jijmodeling.Problem.generate_random_dataset`).
3176
+ - `default` (optional): default range parameters for placeholders which is not specified in `options`.
3177
+ - `seed` (optional): seed for random number generation.
3178
+
3179
+ Returns
3180
+ --------
3181
+ `instance`: The OMMX v1 instance object.
3182
+
3183
+ Examples
3184
+ ---------
3185
+ ```python
3186
+ >>> import jijmodeling as jm
3187
+ >>> import builtins
3188
+ >>> import ommx.v1
3189
+ >>> N = jm.Placeholder("N", dtype=jm.DataType.INTEGER)
3190
+ >>> c = jm.Placeholder("c", dtype=jm.DataType.FLOAT, shape=(N,))
3191
+ >>> x = jm.BinaryVar("x", shape=(N,))
3192
+ >>> i = jm.Element("i", belong_to=N)
3193
+
3194
+ >>> problem = jm.Problem("problem")
3195
+ >>> problem += jm.sum(i, c[i] * x[i])
3196
+
3197
+ >>> instance = problem.generate_random_instance(
3198
+ ... options={
3199
+ ... 'N': {"value": builtins.range(10, 20)},
3200
+ ... 'c': {"value": jm.range.value.closed(-1.0, 1.0)}
3201
+ ... },
3202
+ ... seed=123
3203
+ ... )
3204
+ >>> assert type(instance) is ommx.v1.Instance
3205
+
3206
+ ```
3207
+ """
3208
+ ...
3209
+
3060
3210
 
3061
3211
  class ProdOp:
3062
3212
  r"""
@@ -0,0 +1,14 @@
1
+ # `jijmodeling.jijmodeling` is a module corresponding to the shared library
2
+ # created by PyO3,
3
+ # and `jijmodeling.jijmodeling.range` is its submodule defined dynamically
4
+ # while the initialization of the shared library.
5
+ #
6
+ # This file defines a new sub-module `jijmodeling.range`,
7
+ # and exposes all the components in `jijmodeling.jijmodeling.range`
8
+ #
9
+
10
+ from .._jijmodeling import range as _range # type: ignore
11
+ import sys
12
+
13
+ for component in _range.__all__:
14
+ setattr(sys.modules[__name__], component, getattr(_range, component))
@@ -0,0 +1,54 @@
1
+ # This file is automatically generated by pyo3_stub_gen
2
+ # ruff: noqa: E501, F401
3
+
4
+ import typing
5
+ from . import value
6
+
7
+ def at_least(bd:int | float) -> dict[str, dict[str, int] | typing.Literal['Unbounded']] | dict[str, dict[str, float] | typing.Literal['Unbounded']]:
8
+ r"""
9
+ `at_least(lb)` returns a closed interval $[\mathtt{lb}, \infty)$; that is, $x \in \mathtt{at\_least(lb)} \iff x \geq \mathtt{lb}$.
10
+ """
11
+ ...
12
+
13
+ def at_most(bd:int | float) -> dict[str, dict[str, int] | typing.Literal['Unbounded']] | dict[str, dict[str, float] | typing.Literal['Unbounded']]:
14
+ r"""
15
+ `at_most(ub)` returns a closed interval $(-\infty, \mathtt{ub}]$; that is, $x \in \mathtt{at\_most(ub)} \iff x \leq \mathtt{ub}$.
16
+ """
17
+ ...
18
+
19
+ def closed(lb:int | float,ub:int | float) -> dict[str, dict[str, int] | typing.Literal['Unbounded']] | dict[str, dict[str, float] | typing.Literal['Unbounded']]:
20
+ r"""
21
+ `closed(lb, ub)` returns a closed interval $[\mathtt{lb}, \mathtt{ub}]$; that is, $x \in \mathtt{closed(lb, ub)} \iff \mathtt{lb} \leq x \leq \mathtt{ub}$
22
+ """
23
+ ...
24
+
25
+ def closed_open(lb:int | float,ub:int | float) -> dict[str, dict[str, int] | typing.Literal['Unbounded']] | dict[str, dict[str, float] | typing.Literal['Unbounded']]:
26
+ r"""
27
+ `closed_open(lb, ub)` returns a upper half-open interval $[\mathtt{lb}, \mathtt{ub})$; that is, $x \in \mathtt{closed\_open(lb, ub)} \iff \mathtt{lb} \leq x < \mathtt{ub}$. For size range, it is same as the python's standard `range(lb, ub)` function.
28
+ """
29
+ ...
30
+
31
+ def greater_than(bd:int | float) -> dict[str, dict[str, int] | typing.Literal['Unbounded']] | dict[str, dict[str, float] | typing.Literal['Unbounded']]:
32
+ r"""
33
+ `greater_than(lb)` returns an open interval $(\mathtt{lb}, \infty)$; that is, $x \in \mathtt{greater\_than(lb)} \iff x > \mathtt{lb}$.
34
+ """
35
+ ...
36
+
37
+ def less_than(bd:int | float) -> dict[str, dict[str, int] | typing.Literal['Unbounded']] | dict[str, dict[str, float] | typing.Literal['Unbounded']]:
38
+ r"""
39
+ `less_than(ub)` returns an open interval $(-\infty, \mathtt{ub})$; that is, $x \in \mathtt{less\_than(ub)} \iff x < \mathtt{ub}$. For size range, it is same as the python's standard `range(ub)` function.
40
+ """
41
+ ...
42
+
43
+ def open(lb:int | float,ub:int | float) -> dict[str, dict[str, int] | typing.Literal['Unbounded']] | dict[str, dict[str, float] | typing.Literal['Unbounded']]:
44
+ r"""
45
+ `open(lb, ub)` returns an open interval $(\mathtt{lb}, \mathtt{ub})$; that is, $x \in \mathtt{open(lb, ub)} \iff \mathtt{lb} < x < \mathtt{ub}$
46
+ """
47
+ ...
48
+
49
+ def open_closed(lb:int | float,ub:int | float) -> dict[str, dict[str, int] | typing.Literal['Unbounded']] | dict[str, dict[str, float] | typing.Literal['Unbounded']]:
50
+ r"""
51
+ `open_closed(lb, ub)` returns a lower half-open interval $(\mathtt{lb}, \mathtt{ub}]$; that is, $x \in \mathtt{open\_closed(lb, ub)} \iff \mathtt{lb} < x \leq \mathtt{ub}$.
52
+ """
53
+ ...
54
+
@@ -0,0 +1,14 @@
1
+ # `jijmodeling.jijmodeling` is a module corresponding to the shared library
2
+ # created by PyO3,
3
+ # and `jijmodeling.jijmodeling.range` is its submodule defined dynamically
4
+ # while the initialization of the shared library.
5
+ #
6
+ # This file defines a new sub-module `jijmodeling.range`,
7
+ # and exposes all the components in `jijmodeling.jijmodeling.range`
8
+ #
9
+
10
+ from . import size as _size # type: ignore
11
+ import sys
12
+
13
+ for component in _size.__all__: # type: ignore
14
+ setattr(sys.modules[__name__], component, getattr(_size, component))
@@ -0,0 +1,53 @@
1
+ # This file is automatically generated by pyo3_stub_gen
2
+ # ruff: noqa: E501, F401
3
+
4
+ import typing
5
+
6
+ def at_least(arg:int) -> dict[str, dict[str, int] | typing.Literal['Unbounded']]:
7
+ r"""
8
+ `at_least(lb)` returns a closed interval $[\mathtt{lb}, \infty)$; that is, $x \in \mathtt{at\_least(lb)} \iff x \geq \mathtt{lb}$.
9
+ """
10
+ ...
11
+
12
+ def at_most(bd:int) -> dict[str, dict[str, int] | typing.Literal['Unbounded']]:
13
+ r"""
14
+ `at_most(ub)` returns a closed interval $(-\infty, \mathtt{ub}]$; that is, $x \in \mathtt{at\_most(ub)} \iff x \leq \mathtt{ub}$.
15
+ """
16
+ ...
17
+
18
+ def closed(lb:int,ub:int) -> dict[str, dict[str, int] | typing.Literal['Unbounded']]:
19
+ r"""
20
+ `closed(lb, ub)` returns a closed interval $[\mathtt{lb}, \mathtt{ub}]$; that is, $x \in \mathtt{closed(lb, ub)} \iff \mathtt{lb} \leq x \leq \mathtt{ub}$
21
+ """
22
+ ...
23
+
24
+ def closed_open(lb:int,ub:int) -> dict[str, dict[str, int] | typing.Literal['Unbounded']]:
25
+ r"""
26
+ `closed_open(lb, ub)` returns a upper half-open interval $[\mathtt{lb}, \mathtt{ub})$; that is, $x \in \mathtt{closed\_open(lb, ub)} \iff \mathtt{lb} \leq x < \mathtt{ub}$. For size range, it is same as the python's standard `range(lb, ub)` function.
27
+ """
28
+ ...
29
+
30
+ def greater_than(arg:int) -> dict[str, dict[str, int] | typing.Literal['Unbounded']]:
31
+ r"""
32
+ `greater_than(lb)` returns an open interval $(\mathtt{lb}, \infty)$; that is, $x \in \mathtt{greater\_than(lb)} \iff x > \mathtt{lb}$.
33
+ """
34
+ ...
35
+
36
+ def less_than(bd:int) -> dict[str, dict[str, int] | typing.Literal['Unbounded']]:
37
+ r"""
38
+ `less_than(ub)` returns an open interval $(-\infty, \mathtt{ub})$; that is, $x \in \mathtt{less\_than(ub)} \iff x < \mathtt{ub}$. For size range, it is same as the python's standard `range(ub)` function.
39
+ """
40
+ ...
41
+
42
+ def open(lb:int,ub:int) -> dict[str, dict[str, int] | typing.Literal['Unbounded']]:
43
+ r"""
44
+ `open(lb, ub)` returns an open interval $(\mathtt{lb}, \mathtt{ub})$; that is, $x \in \mathtt{open(lb, ub)} \iff \mathtt{lb} < x < \mathtt{ub}$
45
+ """
46
+ ...
47
+
48
+ def open_closed(lb:int,ub:int) -> dict[str, dict[str, int] | typing.Literal['Unbounded']]:
49
+ r"""
50
+ `open_closed(lb, ub)` returns a lower half-open interval $(\mathtt{lb}, \mathtt{ub}]$; that is, $x \in \mathtt{open\_closed(lb, ub)} \iff \mathtt{lb} < x \leq \mathtt{ub}$.
51
+ """
52
+ ...
53
+
@@ -0,0 +1,14 @@
1
+ # `jijmodeling.jijmodeling` is a module corresponding to the shared library
2
+ # created by PyO3,
3
+ # and `jijmodeling.jijmodeling.range` is its submodule defined dynamically
4
+ # while the initialization of the shared library.
5
+ #
6
+ # This file defines a new sub-module `jijmodeling.range`,
7
+ # and exposes all the components in `jijmodeling.jijmodeling.range`
8
+ #
9
+
10
+ from . import value as _value # type: ignore
11
+ import sys
12
+
13
+ for component in _value.__all__: # type: ignore
14
+ setattr(sys.modules[__name__], component, getattr(_value, component))
@@ -0,0 +1,53 @@
1
+ # This file is automatically generated by pyo3_stub_gen
2
+ # ruff: noqa: E501, F401
3
+
4
+ import typing
5
+
6
+ def at_least(arg:float) -> dict[str, dict[str, float] | typing.Literal['Unbounded']]:
7
+ r"""
8
+ `at_least(lb)` returns a closed interval $[\mathtt{lb}, \infty)$; that is, $x \in \mathtt{at\_least(lb)} \iff x \geq \mathtt{lb}$.
9
+ """
10
+ ...
11
+
12
+ def at_most(bd:float) -> dict[str, dict[str, float] | typing.Literal['Unbounded']]:
13
+ r"""
14
+ `at_most(ub)` returns a closed interval $(-\infty, \mathtt{ub}]$; that is, $x \in \mathtt{at\_most(ub)} \iff x \leq \mathtt{ub}$.
15
+ """
16
+ ...
17
+
18
+ def closed(lb:float,ub:float) -> dict[str, dict[str, float] | typing.Literal['Unbounded']]:
19
+ r"""
20
+ `closed(lb, ub)` returns a closed interval $[\mathtt{lb}, \mathtt{ub}]$; that is, $x \in \mathtt{closed(lb, ub)} \iff \mathtt{lb} \leq x \leq \mathtt{ub}$
21
+ """
22
+ ...
23
+
24
+ def closed_open(lb:float,ub:float) -> dict[str, dict[str, float] | typing.Literal['Unbounded']]:
25
+ r"""
26
+ `closed_open(lb, ub)` returns a upper half-open interval $[\mathtt{lb}, \mathtt{ub})$; that is, $x \in \mathtt{closed\_open(lb, ub)} \iff \mathtt{lb} \leq x < \mathtt{ub}$. For size range, it is same as the python's standard `range(lb, ub)` function.
27
+ """
28
+ ...
29
+
30
+ def greater_than(arg:float) -> dict[str, dict[str, float] | typing.Literal['Unbounded']]:
31
+ r"""
32
+ `greater_than(lb)` returns an open interval $(\mathtt{lb}, \infty)$; that is, $x \in \mathtt{greater\_than(lb)} \iff x > \mathtt{lb}$.
33
+ """
34
+ ...
35
+
36
+ def less_than(bd:float) -> dict[str, dict[str, float] | typing.Literal['Unbounded']]:
37
+ r"""
38
+ `less_than(ub)` returns an open interval $(-\infty, \mathtt{ub})$; that is, $x \in \mathtt{less\_than(ub)} \iff x < \mathtt{ub}$. For size range, it is same as the python's standard `range(ub)` function.
39
+ """
40
+ ...
41
+
42
+ def open(lb:float,ub:float) -> dict[str, dict[str, float] | typing.Literal['Unbounded']]:
43
+ r"""
44
+ `open(lb, ub)` returns an open interval $(\mathtt{lb}, \mathtt{ub})$; that is, $x \in \mathtt{open(lb, ub)} \iff \mathtt{lb} < x < \mathtt{ub}$
45
+ """
46
+ ...
47
+
48
+ def open_closed(lb:float,ub:float) -> dict[str, dict[str, float] | typing.Literal['Unbounded']]:
49
+ r"""
50
+ `open_closed(lb, ub)` returns a lower half-open interval $(\mathtt{lb}, \mathtt{ub}]$; that is, $x \in \mathtt{open\_closed(lb, ub)} \iff \mathtt{lb} < x \leq \mathtt{ub}$.
51
+ """
52
+ ...
53
+
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: jijmodeling
3
- Version: 1.8.0
3
+ Version: 1.9.0
4
4
  Classifier: Development Status :: 5 - Production/Stable
5
5
  Classifier: Operating System :: POSIX :: Linux
6
6
  Classifier: Operating System :: MacOS
@@ -21,7 +21,9 @@ Requires-Dist: orjson >=3.8.0, <4.0.0
21
21
  Requires-Dist: ommx >=1.3.2, <2.0.0
22
22
  Requires-Dist: pyright ; extra == 'test'
23
23
  Requires-Dist: pytest ; extra == 'test'
24
+ Requires-Dist: hypothesis ; extra == 'test'
24
25
  Requires-Dist: twine ; extra == 'test'
26
+ Requires-Dist: pkginfo >=1.10.0 ; extra == 'test'
25
27
  Provides-Extra: test
26
28
  License-File: LICENSE.txt
27
29
  Summary: Mathematical modeling tool for optimization problem
@@ -0,0 +1,18 @@
1
+ jijmodeling-1.9.0.dist-info/METADATA,sha256=YxibB5-PM-EvNMWqPq1xWLhpgXbZhbM-8jid0WmfdR8,13088
2
+ jijmodeling-1.9.0.dist-info/WHEEL,sha256=0w4BB7qNnBqOYtGm048H9Ym96rT9YqHgx66Y8sDuZ14,95
3
+ jijmodeling-1.9.0.dist-info/licenses/LICENSE.txt,sha256=llUjgcEN5bUeFlj1RqxJxDMxUnlYvowLsldCF6Lwq8c,3445
4
+ jijmodeling/dataset.py,sha256=L8yUjKp81m6_CoSfdPJMoJmlCQ_gf7n8okURTKRMXaw,190
5
+ jijmodeling/dataset.pyi,sha256=CQKCr2hAJ2BX_zqI4tN9PUU_3zSkQ35lWIvsIVIBdwQ,4110
6
+ jijmodeling/experimental.py,sha256=WWmxJzkyx_EYac1zmxflmFND191-xbVVXEdqot2VrM4,588
7
+ jijmodeling/experimental.pyi,sha256=xEzVzawfe8a0xUNQ2ml6RK5CUbcuNGIoC-n-Nxd8P0E,9319
8
+ jijmodeling/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
+ jijmodeling/range/size.py,sha256=F-cc3hLTAxUQo4umo6qFM5crGYdcWIEFLvWO963TyFY,542
10
+ jijmodeling/range/size.pyi,sha256=3ov-8EUEY-qnRjjcqGbtP5PXRPqgREnjHTnCNiL9Xlg,2395
11
+ jijmodeling/range/value.py,sha256=VCtUjzL4vfOo-yqSEmfLD1JZ98d73NYPuzohWDu5R2Q,546
12
+ jijmodeling/range/value.pyi,sha256=1dm_bYaWuGyFw3Mo0FMwMtvd_2SjVUB69edxMo3A0Qg,2435
13
+ jijmodeling/range/__init__.py,sha256=Dh-hTX2LMtTaM-Aps6Z4KfV28EoLI3vfkiRr4lQu13s,543
14
+ jijmodeling/range/__init__.pyi,sha256=_1zlGEhgXOyPhdSc_mSl4BQlDN5axXYqEueRbfG9yD0,2990
15
+ jijmodeling/__init__.py,sha256=jJ6o5wp3MPAP1uR3dqSvjaXG57t1IwcS8ojqPpZL-gU,45
16
+ jijmodeling/__init__.pyi,sha256=0CSIUmR-NfttU7m-BqzP0_qusg-MkT3JvFapmi_98s4,147757
17
+ jijmodeling/_jijmodeling.cp311-win_amd64.pyd,sha256=_nZ95uaOhkH9GEvJ87FWwLbjwknWxrbORotpPtqCxNo,8025600
18
+ jijmodeling-1.9.0.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: maturin (1.7.4)
2
+ Generator: maturin (1.7.5)
3
3
  Root-Is-Purelib: false
4
4
  Tag: cp311-none-win_amd64
@@ -1,12 +0,0 @@
1
- jijmodeling-1.8.0.dist-info/METADATA,sha256=YWK1swK6Nt5jFJoS1cxTZTCH4clxZ8VY_2HK01MCAoE,12994
2
- jijmodeling-1.8.0.dist-info/WHEEL,sha256=bNtRK4IG-ZINiRwRhIvmsDSb0Vife_pt6vsyhyhjHi8,95
3
- jijmodeling-1.8.0.dist-info/licenses/LICENSE.txt,sha256=llUjgcEN5bUeFlj1RqxJxDMxUnlYvowLsldCF6Lwq8c,3445
4
- jijmodeling/dataset.py,sha256=L8yUjKp81m6_CoSfdPJMoJmlCQ_gf7n8okURTKRMXaw,190
5
- jijmodeling/dataset.pyi,sha256=CQKCr2hAJ2BX_zqI4tN9PUU_3zSkQ35lWIvsIVIBdwQ,4110
6
- jijmodeling/experimental.py,sha256=WWmxJzkyx_EYac1zmxflmFND191-xbVVXEdqot2VrM4,588
7
- jijmodeling/experimental.pyi,sha256=xEzVzawfe8a0xUNQ2ml6RK5CUbcuNGIoC-n-Nxd8P0E,9319
8
- jijmodeling/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
- jijmodeling/__init__.py,sha256=jJ6o5wp3MPAP1uR3dqSvjaXG57t1IwcS8ojqPpZL-gU,45
10
- jijmodeling/__init__.pyi,sha256=40BalCWUTsdCCfCQfvCzoR1H6g_DmzyvFqN0IQrrF1g,138976
11
- jijmodeling/_jijmodeling.cp311-win_amd64.pyd,sha256=HCpdxQVOxQtBFqbSyBAgC7s8WVEuhN9rkTARJQMSjNU,7983616
12
- jijmodeling-1.8.0.dist-info/RECORD,,