vtool-ibeis-ext 0.1.3__cp312-cp312-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.
@@ -0,0 +1,8 @@
1
+ __version__ = '0.1.3'
2
+ __author__ = 'Jon Crall'
3
+ __author_email__ = 'erotemic@gmail.com'
4
+ __url__ = 'https://github.com/Erotemic/vtool_ibeis_ext'
5
+
6
+ __mkinit__ = """
7
+ mkinit -m vtool_ibeis_ext
8
+ """
Binary file
@@ -0,0 +1,182 @@
1
+ #!/usr/bin/env python
2
+ """
3
+ wraps c implementations slower parts of spatial verification
4
+
5
+ CommandLine:
6
+ python -m vtool_ibeis_ext.sver_c_wrapper --rebuild-sver
7
+ python -m vtool_ibeis_ext.sver_c_wrapper --rebuild-sver
8
+ xdoctest -m vtool_ibeis_ext.sver_c_wrapper
9
+
10
+ Example:
11
+ >>> import numpy as np
12
+ >>> kpts1 = np.array([[ 3.2e+01, 2.7e+01, 1.7e+01, 5.0e+00, 2.1e+01, 6.2e+00],
13
+ >>> [ 1.3e+02, 2.3e+01, 2.0e+01, 2.7e+00, 2.1e+01, 6.3e+00],
14
+ >>> [ 2.3e+02, 2.4e+01, 1.7e+01, -9.2e+00, 1.6e+01, 4.7e-01],
15
+ >>> [ 3.0e+01, 1.3e+02, 1.6e+01, -9.2e+00, 1.8e+01, 5.6e+00],
16
+ >>> [ 1.3e+02, 1.4e+02, 1.9e+01, -1.6e-01, 2.1e+01, 1.1e-01],
17
+ >>> [ 2.3e+02, 1.3e+02, 1.9e+01, -1.1e+00, 2.0e+01, 4.8e-02],
18
+ >>> [ 3.5e+01, 2.2e+02, 1.8e+01, -3.0e+00, 2.0e+01, 1.8e-01],
19
+ >>> [ 1.4e+02, 2.3e+02, 1.8e+01, -2.4e+00, 2.0e+01, 6.0e+00],
20
+ >>> [ 2.3e+02, 2.3e+02, 2.3e+01, 1.3e+00, 1.9e+01, 4.4e-01]], dtype=np.float64)
21
+ >>> kpts2 = np.array([[3.4e+01, 2.8e+01, 2.0e+01, 1.6e+00, 1.7e+01, 1.8e-02],
22
+ >>> [1.3e+02, 2.7e+01, 2.1e+01, 4.4e+00, 2.0e+01, 6.3e+00],
23
+ >>> [2.3e+02, 2.6e+01, 2.0e+01, 3.8e+00, 2.0e+01, 7.3e-03],
24
+ >>> [3.2e+01, 1.3e+02, 2.3e+01, 1.1e+00, 2.2e+01, 6.0e+00],
25
+ >>> [1.2e+02, 1.3e+02, 1.9e+01, 1.6e+00, 2.3e+01, 6.2e+00],
26
+ >>> [2.3e+02, 1.4e+02, 1.8e+01, 4.5e+00, 1.6e+01, 2.7e-01],
27
+ >>> [3.3e+01, 2.3e+02, 2.0e+01, 2.0e+00, 1.9e+01, 1.7e-01],
28
+ >>> [1.3e+02, 2.3e+02, 2.1e+01, 4.0e+00, 2.1e+01, 1.1e-01],
29
+ >>> [2.3e+02, 2.3e+02, 1.6e+01, 2.5e+00, 2.2e+01, 6.2e+00]], dtype=np.float64)
30
+ >>> fm = np.array([[0, 0],[1, 1],[2, 2],[3, 3],[4, 4],[5, 5],[6, 6],[7, 7],[8, 8]], dtype=np.int64)
31
+ >>> fs = np.array([1., 1., 1., 1., 1., 1., 1., 1., 1.], dtype=np.float64)
32
+ >>> xy_thresh_sqrd = 100
33
+ >>> scale_thresh_sqrd = 100
34
+ >>> ori_thresh = 100
35
+ >>> from vtool_ibeis_ext.sver_c_wrapper import *
36
+ >>> out_inliers, out_errors, out_mats = get_affine_inliers_cpp(kpts1, kpts2, fm, fs, xy_thresh_sqrd, scale_thresh_sqrd, ori_thresh)
37
+ >>> out_inliers, out_errors, out_mats = get_best_affine_inliers_cpp(kpts1, kpts2, fm, fs, xy_thresh_sqrd, scale_thresh_sqrd, ori_thresh)
38
+ """
39
+ import ctypes as C
40
+ import numpy as np
41
+ import ubelt as ub
42
+ from os.path import dirname, join
43
+
44
+
45
+ if ub.WIN32:
46
+ lib_ext = '.dll'
47
+ elif ub.DARWIN:
48
+ lib_ext = '.dylib'
49
+ elif ub.LINUX:
50
+ lib_ext = '.so'
51
+ else:
52
+ lib_ext = '.so'
53
+
54
+ c_double_p = C.POINTER(C.c_double)
55
+
56
+ # copied/adapted from _pyhesaff.py
57
+ kpts_dtype = np.float64
58
+ fm_dtype = np.int64 if C.sizeof(C.c_size_t) == 8 else np.int32
59
+ fs_dtype = np.float64
60
+ FLAGS_RW = 'aligned, c_contiguous, writeable'
61
+ FLAGS_RO = 'aligned, c_contiguous'
62
+
63
+ kpts_t = np.ctypeslib.ndpointer(dtype=kpts_dtype, ndim=2, flags=FLAGS_RO)
64
+ fm_t = np.ctypeslib.ndpointer(dtype=fm_dtype, ndim=2, flags=FLAGS_RO)
65
+ fs_t = np.ctypeslib.ndpointer(dtype=fs_dtype, ndim=1, flags=FLAGS_RO)
66
+
67
+
68
+ def inliers_t(ndim):
69
+ return np.ctypeslib.ndpointer(dtype=bool, ndim=ndim, flags=FLAGS_RW)
70
+
71
+
72
+ def errs_t(ndim):
73
+ return np.ctypeslib.ndpointer(dtype=np.float64, ndim=ndim, flags=FLAGS_RW)
74
+
75
+
76
+ def mats_t(ndim):
77
+ return np.ctypeslib.ndpointer(dtype=np.float64, ndim=ndim, flags=FLAGS_RW)
78
+
79
+ dpath = dirname(__file__)
80
+
81
+ _lib_search_paths = [join(dpath, 'lib'), dpath]
82
+ _lib_basenames = ['libsver', 'sver']
83
+ if ub.WIN32:
84
+ # Windows builds typically produce sver.dll (no 'lib' prefix)
85
+ _lib_basenames = ['sver', 'libsver']
86
+
87
+ lib_fname_cand = []
88
+ for _base in _lib_basenames:
89
+ lib_fname_cand.extend(list(ub.find_path(
90
+ name=_base + lib_ext,
91
+ path=_lib_search_paths,
92
+ exact=False)
93
+ ))
94
+ lib_fname_cand = list(dict.fromkeys(lib_fname_cand))
95
+
96
+ if len(lib_fname_cand):
97
+ if len(lib_fname_cand) > 1:
98
+ print('multiple libsver candidates: {}'.format(lib_fname_cand))
99
+ lib_fname = lib_fname_cand[0]
100
+ else:
101
+ raise Exception(
102
+ 'cannot find sver library; tried names={} in paths={}'.format(
103
+ _lib_basenames, _lib_search_paths
104
+ )
105
+ )
106
+ lib_fname = None
107
+
108
+
109
+ if __name__ != '__main__':
110
+ try:
111
+ c_sver = C.cdll[lib_fname]
112
+ except Exception:
113
+ print('Failed to open lib_fname = %r' % (lib_fname,))
114
+ raise
115
+ c_getaffineinliers = c_sver['get_affine_inliers']
116
+ c_getaffineinliers.restype = C.c_int
117
+ # for every affine hypothesis, for every keypoint pair (is
118
+ # it an inlier, the error triples, the hypothesis itself)
119
+ c_getaffineinliers.argtypes = [kpts_t, C.c_size_t,
120
+ kpts_t, C.c_size_t,
121
+ fm_t, fs_t, C.c_size_t,
122
+ C.c_double, C.c_double, C.c_double,
123
+ inliers_t(2), errs_t(3), mats_t(3)]
124
+ # for the best affine hypothesis, for every keypoint pair
125
+ # (is it an inlier, the error triples (transposed?), the
126
+ # hypothesis itself)
127
+ c_getbestaffineinliers = c_sver['get_best_affine_inliers']
128
+ c_getbestaffineinliers.restype = C.c_int
129
+ c_getbestaffineinliers.argtypes = [kpts_t, C.c_size_t,
130
+ kpts_t, C.c_size_t,
131
+ fm_t, fs_t, C.c_size_t,
132
+ C.c_double, C.c_double, C.c_double,
133
+ inliers_t(1), errs_t(2), mats_t(2)]
134
+
135
+
136
+ def get_affine_inliers_cpp(kpts1, kpts2, fm, fs, xy_thresh_sqrd, scale_thresh_sqrd, ori_thresh):
137
+ #np.ascontiguousarray(kpts1)
138
+ num_matches = len(fm)
139
+ fm = np.ascontiguousarray(fm, dtype=fm_dtype)
140
+ out_inlier_flags = np.empty((num_matches, num_matches), bool)
141
+ out_errors = np.empty((num_matches, 3, num_matches), np.float64)
142
+ out_mats = np.empty((num_matches, 3, 3), np.float64)
143
+ c_getaffineinliers(kpts1, kpts1.size,
144
+ kpts2, kpts2.size,
145
+ fm, fs, len(fm),
146
+ xy_thresh_sqrd, scale_thresh_sqrd, ori_thresh,
147
+ out_inlier_flags, out_errors, out_mats)
148
+ out_inliers = [np.where(row)[0] for row in out_inlier_flags]
149
+ out_errors = list(map(tuple, out_errors))
150
+ return out_inliers, out_errors, out_mats
151
+
152
+
153
+ def get_best_affine_inliers_cpp(kpts1, kpts2, fm, fs, xy_thresh_sqrd,
154
+ scale_thresh_sqrd, ori_thresh):
155
+ #np.ascontiguousarray(kpts1)
156
+ fm = np.ascontiguousarray(fm, dtype=fm_dtype)
157
+ out_inlier_flags = np.empty((len(fm),), bool)
158
+ out_errors = np.empty((3, len(fm)), np.float64)
159
+ out_mat = np.empty((3, 3), np.float64)
160
+ c_getbestaffineinliers(kpts1, 6 * len(kpts1),
161
+ kpts2, 6 * len(kpts2),
162
+ fm, fs, len(fm),
163
+ xy_thresh_sqrd, scale_thresh_sqrd, ori_thresh,
164
+ out_inlier_flags, out_errors, out_mat)
165
+ out_inliers = np.where(out_inlier_flags)[0]
166
+ out_errors = tuple(out_errors)
167
+ return out_inliers, out_errors, out_mat
168
+
169
+
170
+ def call_hello():
171
+ lib = C.cdll['./sver.so']
172
+ hello = lib['hello_world']
173
+ hello()
174
+
175
+
176
+ if __name__ == '__main__':
177
+ """
178
+ CommandLine:
179
+ xdoctest -m vtool_ibeis_ext.sver_c_wrapper
180
+ """
181
+ import xdoctest
182
+ xdoctest.doctest_module(__file__)
@@ -0,0 +1,194 @@
1
+ Metadata-Version: 2.4
2
+ Name: vtool_ibeis_ext
3
+ Version: 0.1.3
4
+ Summary: The vtool_ibeis_ext module
5
+ Home-page: https://github.com/Erotemic/vtool_ibeis_ext
6
+ Author: Jon Crall, Avi Weinstock
7
+ Author-email: erotemic@gmail.com
8
+ License: Apache 2
9
+ Classifier: Development Status :: 4 - Beta
10
+ Classifier: Intended Audience :: Developers
11
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
12
+ Classifier: Topic :: Utilities
13
+ Classifier: Programming Language :: Python :: 3.9
14
+ Classifier: Programming Language :: Python :: 3.10
15
+ Classifier: Programming Language :: Python :: 3.11
16
+ Classifier: Programming Language :: Python :: 3.12
17
+ Classifier: Programming Language :: Python :: 3.13
18
+ Classifier: Programming Language :: Python :: 3.14
19
+ Requires-Python: >=3.9
20
+ Description-Content-Type: text/x-rst
21
+ Requires-Dist: ubelt>=1.3.4
22
+ Requires-Dist: numpy>=2.3.2; python_version < "4.0" and python_version >= "3.14"
23
+ Requires-Dist: numpy>=2.1.0; python_version < "3.14" and python_version >= "3.13"
24
+ Requires-Dist: numpy>=1.26.0; python_version < "3.13" and python_version >= "3.12"
25
+ Requires-Dist: numpy>=1.24.0; python_version < "3.12" and python_version >= "3.11"
26
+ Requires-Dist: numpy>=1.21.6; python_version < "3.11" and python_version >= "3.10"
27
+ Requires-Dist: numpy>=1.19.3; python_version < "3.10" and python_version >= "3.9"
28
+ Provides-Extra: all
29
+ Requires-Dist: ubelt>=1.3.4; extra == "all"
30
+ Requires-Dist: numpy>=2.3.2; (python_version < "4.0" and python_version >= "3.14") and extra == "all"
31
+ Requires-Dist: numpy>=2.1.0; (python_version < "3.14" and python_version >= "3.13") and extra == "all"
32
+ Requires-Dist: numpy>=1.26.0; (python_version < "3.13" and python_version >= "3.12") and extra == "all"
33
+ Requires-Dist: numpy>=1.24.0; (python_version < "3.12" and python_version >= "3.11") and extra == "all"
34
+ Requires-Dist: numpy>=1.21.6; (python_version < "3.11" and python_version >= "3.10") and extra == "all"
35
+ Requires-Dist: numpy>=1.19.3; (python_version < "3.10" and python_version >= "3.9") and extra == "all"
36
+ Requires-Dist: pytest>=8.1.1; (python_version < "4.0" and python_version >= "3.13") and extra == "all"
37
+ Requires-Dist: pytest>=8.1.1; (python_version < "3.13" and python_version >= "3.12") and extra == "all"
38
+ Requires-Dist: pytest>=8.1.1; (python_version < "3.12" and python_version >= "3.11") and extra == "all"
39
+ Requires-Dist: pytest>=6.2.5; (python_version < "3.11" and python_version >= "3.10") and extra == "all"
40
+ Requires-Dist: pytest>=6.2.5; (python_version < "3.10" and python_version >= "3.8") and extra == "all"
41
+ Requires-Dist: pytest-cov>=3.0.0; extra == "all"
42
+ Requires-Dist: coverage>=7.3.0; (python_version < "4.0" and python_version >= "3.12") and extra == "all"
43
+ Requires-Dist: coverage>=6.1.1; (python_version < "3.12" and python_version >= "3.10") and extra == "all"
44
+ Requires-Dist: coverage>=5.3.1; (python_version < "3.10" and python_version >= "3.9") and extra == "all"
45
+ Requires-Dist: coverage>=6.1.1; (python_version < "3.9" and python_version >= "3.8") and extra == "all"
46
+ Requires-Dist: xdoctest>=1.1.5; extra == "all"
47
+ Provides-Extra: headless
48
+ Requires-Dist: opencv-python-headless>=4.10.0.84; (python_version < "4.0" and python_version >= "3.13") and extra == "headless"
49
+ Requires-Dist: opencv-python-headless>=4.5.5.64; (python_version < "3.13" and python_version >= "3.11") and extra == "headless"
50
+ Requires-Dist: opencv-python-headless>=4.5.4.58; (python_version < "3.11" and python_version >= "3.10") and extra == "headless"
51
+ Requires-Dist: opencv-python-headless>=3.4.15.55; (python_version < "3.10" and python_version >= "3.9") and extra == "headless"
52
+ Provides-Extra: graphics
53
+ Requires-Dist: opencv-python>=4.10.0.84; (python_version < "4.0" and python_version >= "3.13") and extra == "graphics"
54
+ Requires-Dist: opencv-python>=4.5.5.64; (python_version < "3.13" and python_version >= "3.11") and extra == "graphics"
55
+ Requires-Dist: opencv-python>=4.5.4.58; (python_version < "3.11" and python_version >= "3.10") and extra == "graphics"
56
+ Requires-Dist: opencv-python>=3.4.15.55; (python_version < "3.10" and python_version >= "3.9") and extra == "graphics"
57
+ Provides-Extra: docs
58
+ Requires-Dist: sphinx>=5.0.1; extra == "docs"
59
+ Requires-Dist: sphinx-autobuild>=2021.3.14; extra == "docs"
60
+ Requires-Dist: sphinx_rtd_theme>=1.0.0; extra == "docs"
61
+ Requires-Dist: sphinxcontrib-napoleon>=0.7; extra == "docs"
62
+ Requires-Dist: sphinx-autoapi>=1.8.4; extra == "docs"
63
+ Requires-Dist: Pygments>=2.9.0; extra == "docs"
64
+ Requires-Dist: myst_parser>=0.18.0; extra == "docs"
65
+ Requires-Dist: sphinx-reredirects>=0.0.1; extra == "docs"
66
+ Provides-Extra: optional
67
+ Provides-Extra: runtime
68
+ Requires-Dist: ubelt>=1.3.4; extra == "runtime"
69
+ Requires-Dist: numpy>=2.3.2; (python_version < "4.0" and python_version >= "3.14") and extra == "runtime"
70
+ Requires-Dist: numpy>=2.1.0; (python_version < "3.14" and python_version >= "3.13") and extra == "runtime"
71
+ Requires-Dist: numpy>=1.26.0; (python_version < "3.13" and python_version >= "3.12") and extra == "runtime"
72
+ Requires-Dist: numpy>=1.24.0; (python_version < "3.12" and python_version >= "3.11") and extra == "runtime"
73
+ Requires-Dist: numpy>=1.21.6; (python_version < "3.11" and python_version >= "3.10") and extra == "runtime"
74
+ Requires-Dist: numpy>=1.19.3; (python_version < "3.10" and python_version >= "3.9") and extra == "runtime"
75
+ Provides-Extra: tests
76
+ Requires-Dist: pytest>=8.1.1; (python_version < "4.0" and python_version >= "3.13") and extra == "tests"
77
+ Requires-Dist: pytest>=8.1.1; (python_version < "3.13" and python_version >= "3.12") and extra == "tests"
78
+ Requires-Dist: pytest>=8.1.1; (python_version < "3.12" and python_version >= "3.11") and extra == "tests"
79
+ Requires-Dist: pytest>=6.2.5; (python_version < "3.11" and python_version >= "3.10") and extra == "tests"
80
+ Requires-Dist: pytest>=6.2.5; (python_version < "3.10" and python_version >= "3.8") and extra == "tests"
81
+ Requires-Dist: pytest-cov>=3.0.0; extra == "tests"
82
+ Requires-Dist: coverage>=7.3.0; (python_version < "4.0" and python_version >= "3.12") and extra == "tests"
83
+ Requires-Dist: coverage>=6.1.1; (python_version < "3.12" and python_version >= "3.10") and extra == "tests"
84
+ Requires-Dist: coverage>=5.3.1; (python_version < "3.10" and python_version >= "3.9") and extra == "tests"
85
+ Requires-Dist: coverage>=6.1.1; (python_version < "3.9" and python_version >= "3.8") and extra == "tests"
86
+ Requires-Dist: xdoctest>=1.1.5; extra == "tests"
87
+ Provides-Extra: all-strict
88
+ Requires-Dist: ubelt==1.3.4; extra == "all-strict"
89
+ Requires-Dist: numpy==2.3.2; (python_version < "4.0" and python_version >= "3.14") and extra == "all-strict"
90
+ Requires-Dist: numpy==2.1.0; (python_version < "3.14" and python_version >= "3.13") and extra == "all-strict"
91
+ Requires-Dist: numpy==1.26.0; (python_version < "3.13" and python_version >= "3.12") and extra == "all-strict"
92
+ Requires-Dist: numpy==1.24.0; (python_version < "3.12" and python_version >= "3.11") and extra == "all-strict"
93
+ Requires-Dist: numpy==1.21.6; (python_version < "3.11" and python_version >= "3.10") and extra == "all-strict"
94
+ Requires-Dist: numpy==1.19.3; (python_version < "3.10" and python_version >= "3.9") and extra == "all-strict"
95
+ Requires-Dist: pytest==8.1.1; (python_version < "4.0" and python_version >= "3.13") and extra == "all-strict"
96
+ Requires-Dist: pytest==8.1.1; (python_version < "3.13" and python_version >= "3.12") and extra == "all-strict"
97
+ Requires-Dist: pytest==8.1.1; (python_version < "3.12" and python_version >= "3.11") and extra == "all-strict"
98
+ Requires-Dist: pytest==6.2.5; (python_version < "3.11" and python_version >= "3.10") and extra == "all-strict"
99
+ Requires-Dist: pytest==6.2.5; (python_version < "3.10" and python_version >= "3.8") and extra == "all-strict"
100
+ Requires-Dist: pytest-cov==3.0.0; extra == "all-strict"
101
+ Requires-Dist: coverage==7.3.0; (python_version < "4.0" and python_version >= "3.12") and extra == "all-strict"
102
+ Requires-Dist: coverage==6.1.1; (python_version < "3.12" and python_version >= "3.10") and extra == "all-strict"
103
+ Requires-Dist: coverage==5.3.1; (python_version < "3.10" and python_version >= "3.9") and extra == "all-strict"
104
+ Requires-Dist: coverage==6.1.1; (python_version < "3.9" and python_version >= "3.8") and extra == "all-strict"
105
+ Requires-Dist: xdoctest==1.1.5; extra == "all-strict"
106
+ Provides-Extra: headless-strict
107
+ Requires-Dist: opencv-python-headless==4.10.0.84; (python_version < "4.0" and python_version >= "3.13") and extra == "headless-strict"
108
+ Requires-Dist: opencv-python-headless==4.5.5.64; (python_version < "3.13" and python_version >= "3.11") and extra == "headless-strict"
109
+ Requires-Dist: opencv-python-headless==4.5.4.58; (python_version < "3.11" and python_version >= "3.10") and extra == "headless-strict"
110
+ Requires-Dist: opencv-python-headless==3.4.15.55; (python_version < "3.10" and python_version >= "3.9") and extra == "headless-strict"
111
+ Provides-Extra: graphics-strict
112
+ Requires-Dist: opencv-python==4.10.0.84; (python_version < "4.0" and python_version >= "3.13") and extra == "graphics-strict"
113
+ Requires-Dist: opencv-python==4.5.5.64; (python_version < "3.13" and python_version >= "3.11") and extra == "graphics-strict"
114
+ Requires-Dist: opencv-python==4.5.4.58; (python_version < "3.11" and python_version >= "3.10") and extra == "graphics-strict"
115
+ Requires-Dist: opencv-python==3.4.15.55; (python_version < "3.10" and python_version >= "3.9") and extra == "graphics-strict"
116
+ Provides-Extra: docs-strict
117
+ Requires-Dist: sphinx==5.0.1; extra == "docs-strict"
118
+ Requires-Dist: sphinx-autobuild==2021.3.14; extra == "docs-strict"
119
+ Requires-Dist: sphinx_rtd_theme==1.0.0; extra == "docs-strict"
120
+ Requires-Dist: sphinxcontrib-napoleon==0.7; extra == "docs-strict"
121
+ Requires-Dist: sphinx-autoapi==1.8.4; extra == "docs-strict"
122
+ Requires-Dist: Pygments==2.9.0; extra == "docs-strict"
123
+ Requires-Dist: myst_parser==0.18.0; extra == "docs-strict"
124
+ Requires-Dist: sphinx-reredirects==0.0.1; extra == "docs-strict"
125
+ Provides-Extra: optional-strict
126
+ Provides-Extra: runtime-strict
127
+ Requires-Dist: ubelt==1.3.4; extra == "runtime-strict"
128
+ Requires-Dist: numpy==2.3.2; (python_version < "4.0" and python_version >= "3.14") and extra == "runtime-strict"
129
+ Requires-Dist: numpy==2.1.0; (python_version < "3.14" and python_version >= "3.13") and extra == "runtime-strict"
130
+ Requires-Dist: numpy==1.26.0; (python_version < "3.13" and python_version >= "3.12") and extra == "runtime-strict"
131
+ Requires-Dist: numpy==1.24.0; (python_version < "3.12" and python_version >= "3.11") and extra == "runtime-strict"
132
+ Requires-Dist: numpy==1.21.6; (python_version < "3.11" and python_version >= "3.10") and extra == "runtime-strict"
133
+ Requires-Dist: numpy==1.19.3; (python_version < "3.10" and python_version >= "3.9") and extra == "runtime-strict"
134
+ Provides-Extra: tests-strict
135
+ Requires-Dist: pytest==8.1.1; (python_version < "4.0" and python_version >= "3.13") and extra == "tests-strict"
136
+ Requires-Dist: pytest==8.1.1; (python_version < "3.13" and python_version >= "3.12") and extra == "tests-strict"
137
+ Requires-Dist: pytest==8.1.1; (python_version < "3.12" and python_version >= "3.11") and extra == "tests-strict"
138
+ Requires-Dist: pytest==6.2.5; (python_version < "3.11" and python_version >= "3.10") and extra == "tests-strict"
139
+ Requires-Dist: pytest==6.2.5; (python_version < "3.10" and python_version >= "3.8") and extra == "tests-strict"
140
+ Requires-Dist: pytest-cov==3.0.0; extra == "tests-strict"
141
+ Requires-Dist: coverage==7.3.0; (python_version < "4.0" and python_version >= "3.12") and extra == "tests-strict"
142
+ Requires-Dist: coverage==6.1.1; (python_version < "3.12" and python_version >= "3.10") and extra == "tests-strict"
143
+ Requires-Dist: coverage==5.3.1; (python_version < "3.10" and python_version >= "3.9") and extra == "tests-strict"
144
+ Requires-Dist: coverage==6.1.1; (python_version < "3.9" and python_version >= "3.8") and extra == "tests-strict"
145
+ Requires-Dist: xdoctest==1.1.5; extra == "tests-strict"
146
+ Dynamic: author
147
+ Dynamic: author-email
148
+ Dynamic: classifier
149
+ Dynamic: description
150
+ Dynamic: description-content-type
151
+ Dynamic: home-page
152
+ Dynamic: license
153
+ Dynamic: provides-extra
154
+ Dynamic: requires-dist
155
+ Dynamic: requires-python
156
+ Dynamic: summary
157
+
158
+
159
+ The vtool_ibeis_ext Module
160
+ ==========================
161
+
162
+ |Pypi| |PypiDownloads| |GithubActions| |Codecov|
163
+
164
+
165
+ +------------------+----------------------------------------------+
166
+ | Github | https://github.com/Erotemic/vtool_ibeis_ext |
167
+ +------------------+----------------------------------------------+
168
+ | Pypi | https://pypi.org/project/vtool_ibeis_ext |
169
+ +------------------+----------------------------------------------+
170
+
171
+
172
+ Contains the binary spatial verification code used by `vtool_ibeis <https://github.com/Erotemic/vtool_ibeis>`_
173
+
174
+ This is mainly maintained for the `IBEIS <https://github.com/Erotemic/IBEIS>`_ application.
175
+
176
+ Binary packages related to IBEIS:
177
+
178
+ * https://github.com/Erotemic/vtool_ibeis_ext
179
+ * https://github.com/Erotemic/pyflann_ibeis
180
+ * https://github.com/Erotemic/pyhesaff
181
+
182
+
183
+ .. |Pypi| image:: https://img.shields.io/pypi/v/vtool_ibeis_ext.svg
184
+ :target: https://pypi.python.org/pypi/vtool_ibeis_ext
185
+
186
+ .. |PypiDownloads| image:: https://img.shields.io/pypi/dm/vtool_ibeis_ext.svg
187
+ :target: https://pypistats.org/packages/vtool_ibeis_ext
188
+
189
+ .. |GithubActions| image:: https://github.com/Erotemic/vtool_ibeis_ext/actions/workflows/tests.yml/badge.svg?branch=main
190
+ :target: https://github.com/Erotemic/vtool_ibeis_ext/actions?query=branch%3Amain
191
+
192
+ .. |Codecov| image:: https://codecov.io/github/Erotemic/vtool_ibeis_ext/badge.svg?branch=main&service=github
193
+ :target: https://codecov.io/github/Erotemic/vtool_ibeis_ext?branch=main
194
+
@@ -0,0 +1,7 @@
1
+ vtool_ibeis_ext/__init__.py,sha256=SUqB5NuiEo6cee97gEOqv40dbfq5e-dNLP1EthMdq-4,199
2
+ vtool_ibeis_ext/sver_c_wrapper.py,sha256=p-TRuUqpmT2mLMkjmlfNte2UWKRe6t0xCZC4-vbxyG4,7617
3
+ vtool_ibeis_ext/lib/sver.dll,sha256=WHIifQAeoLyRH4PNGPp-8a1tViiF71YJYab4zrRJwKM,18944
4
+ vtool_ibeis_ext-0.1.3.dist-info/METADATA,sha256=QLA6_ZLgvtSNR9otVi5T7XFyWTzZJ0NVzJdeJWgOviM,13697
5
+ vtool_ibeis_ext-0.1.3.dist-info/WHEEL,sha256=3cUY9TiuvxHsB0dWaW6wa9MO8pP_yfFeO2_t7ly9aNg,96
6
+ vtool_ibeis_ext-0.1.3.dist-info/top_level.txt,sha256=crNmwKhzrAm9YaLTKwQjrOLZ2ZrOhJ0YjuQOlPl0Dhk,16
7
+ vtool_ibeis_ext-0.1.3.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: skbuild 0.18.1
3
+ Root-Is-Purelib: false
4
+ Tag: cp312-cp312-win_amd64
5
+
@@ -0,0 +1 @@
1
+ vtool_ibeis_ext