blindscrambler 0.1.7__tar.gz → 0.1.8__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.
Files changed (410) hide show
  1. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/PKG-INFO +2 -1
  2. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/pyproject.toml +2 -1
  3. blindscrambler-0.1.8/src/blindscrambler/model/regression.py +285 -0
  4. blindscrambler-0.1.8/target/release/.fingerprint/blindscrambler-515225e0ba74eaea/lib-_core +1 -0
  5. blindscrambler-0.1.8/target/release/.fingerprint/blindscrambler-515225e0ba74eaea/lib-_core.json +1 -0
  6. blindscrambler-0.1.8/target/release/.fingerprint/pyo3-b5406c20eea00644/build-script-build-script-build +1 -0
  7. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/pyo3-b5406c20eea00644/build-script-build-script-build.json +1 -1
  8. blindscrambler-0.1.8/target/release/.fingerprint/pyo3-build-config-a8bde4920a4bfe99/dep-lib-pyo3_build_config +0 -0
  9. blindscrambler-0.1.8/target/release/.fingerprint/pyo3-build-config-a8bde4920a4bfe99/lib-pyo3_build_config +1 -0
  10. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/pyo3-build-config-a8bde4920a4bfe99/lib-pyo3_build_config.json +1 -1
  11. blindscrambler-0.1.8/target/release/.fingerprint/pyo3-build-config-b7fa219f603501ff/run-build-script-build-script-build +1 -0
  12. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/pyo3-build-config-b7fa219f603501ff/run-build-script-build-script-build.json +1 -1
  13. blindscrambler-0.1.8/target/release/.fingerprint/pyo3-eca712ee3cac982c/run-build-script-build-script-build +1 -0
  14. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/pyo3-eca712ee3cac982c/run-build-script-build-script-build.json +1 -1
  15. blindscrambler-0.1.8/target/release/.fingerprint/pyo3-fe834dd71f882076/lib-pyo3 +1 -0
  16. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/pyo3-fe834dd71f882076/lib-pyo3.json +1 -1
  17. blindscrambler-0.1.8/target/release/.fingerprint/pyo3-ffi-3b410603869916e1/lib-pyo3_ffi +1 -0
  18. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/pyo3-ffi-3b410603869916e1/lib-pyo3_ffi.json +1 -1
  19. blindscrambler-0.1.8/target/release/.fingerprint/pyo3-ffi-4b75fa99b2fd670d/build-script-build-script-build +1 -0
  20. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/pyo3-ffi-4b75fa99b2fd670d/build-script-build-script-build.json +1 -1
  21. blindscrambler-0.1.8/target/release/.fingerprint/pyo3-ffi-6d841e46994ed231/run-build-script-build-script-build +1 -0
  22. blindscrambler-0.1.8/target/release/.fingerprint/pyo3-ffi-6d841e46994ed231/run-build-script-build-script-build.json +1 -0
  23. blindscrambler-0.1.8/target/release/.fingerprint/pyo3-macros-039731653063c94a/lib-pyo3_macros +1 -0
  24. blindscrambler-0.1.8/target/release/.fingerprint/pyo3-macros-039731653063c94a/lib-pyo3_macros.json +1 -0
  25. blindscrambler-0.1.8/target/release/.fingerprint/pyo3-macros-backend-09bb79477f3dc5c2/run-build-script-build-script-build +1 -0
  26. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/pyo3-macros-backend-09bb79477f3dc5c2/run-build-script-build-script-build.json +1 -1
  27. blindscrambler-0.1.8/target/release/.fingerprint/pyo3-macros-backend-a8e6c42699c75a62/build-script-build-script-build +1 -0
  28. blindscrambler-0.1.8/target/release/.fingerprint/pyo3-macros-backend-a8e6c42699c75a62/build-script-build-script-build.json +1 -0
  29. blindscrambler-0.1.8/target/release/.fingerprint/pyo3-macros-backend-e9813c72593a8600/lib-pyo3_macros_backend +1 -0
  30. blindscrambler-0.1.8/target/release/.fingerprint/pyo3-macros-backend-e9813c72593a8600/lib-pyo3_macros_backend.json +1 -0
  31. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/libpyo3-fe834dd71f882076.rlib +0 -0
  32. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/libpyo3-fe834dd71f882076.rmeta +0 -0
  33. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/libpyo3_build_config-a8bde4920a4bfe99.rlib +0 -0
  34. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/libpyo3_build_config-a8bde4920a4bfe99.rmeta +0 -0
  35. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/libpyo3_macros-039731653063c94a.dylib +0 -0
  36. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/libpyo3_macros_backend-e9813c72593a8600.rlib +0 -0
  37. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/libpyo3_macros_backend-e9813c72593a8600.rmeta +0 -0
  38. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/uv.lock +15 -1
  39. blindscrambler-0.1.7/src/blindscrambler/model/regression.py +0 -216
  40. blindscrambler-0.1.7/target/release/.fingerprint/blindscrambler-515225e0ba74eaea/lib-_core +0 -1
  41. blindscrambler-0.1.7/target/release/.fingerprint/blindscrambler-515225e0ba74eaea/lib-_core.json +0 -1
  42. blindscrambler-0.1.7/target/release/.fingerprint/pyo3-b5406c20eea00644/build-script-build-script-build +0 -1
  43. blindscrambler-0.1.7/target/release/.fingerprint/pyo3-build-config-a8bde4920a4bfe99/dep-lib-pyo3_build_config +0 -0
  44. blindscrambler-0.1.7/target/release/.fingerprint/pyo3-build-config-a8bde4920a4bfe99/lib-pyo3_build_config +0 -1
  45. blindscrambler-0.1.7/target/release/.fingerprint/pyo3-build-config-b7fa219f603501ff/run-build-script-build-script-build +0 -1
  46. blindscrambler-0.1.7/target/release/.fingerprint/pyo3-eca712ee3cac982c/run-build-script-build-script-build +0 -1
  47. blindscrambler-0.1.7/target/release/.fingerprint/pyo3-fe834dd71f882076/lib-pyo3 +0 -1
  48. blindscrambler-0.1.7/target/release/.fingerprint/pyo3-ffi-3b410603869916e1/lib-pyo3_ffi +0 -1
  49. blindscrambler-0.1.7/target/release/.fingerprint/pyo3-ffi-4b75fa99b2fd670d/build-script-build-script-build +0 -1
  50. blindscrambler-0.1.7/target/release/.fingerprint/pyo3-ffi-6d841e46994ed231/run-build-script-build-script-build +0 -1
  51. blindscrambler-0.1.7/target/release/.fingerprint/pyo3-ffi-6d841e46994ed231/run-build-script-build-script-build.json +0 -1
  52. blindscrambler-0.1.7/target/release/.fingerprint/pyo3-macros-039731653063c94a/lib-pyo3_macros +0 -1
  53. blindscrambler-0.1.7/target/release/.fingerprint/pyo3-macros-039731653063c94a/lib-pyo3_macros.json +0 -1
  54. blindscrambler-0.1.7/target/release/.fingerprint/pyo3-macros-backend-09bb79477f3dc5c2/run-build-script-build-script-build +0 -1
  55. blindscrambler-0.1.7/target/release/.fingerprint/pyo3-macros-backend-a8e6c42699c75a62/build-script-build-script-build +0 -1
  56. blindscrambler-0.1.7/target/release/.fingerprint/pyo3-macros-backend-a8e6c42699c75a62/build-script-build-script-build.json +0 -1
  57. blindscrambler-0.1.7/target/release/.fingerprint/pyo3-macros-backend-e9813c72593a8600/lib-pyo3_macros_backend +0 -1
  58. blindscrambler-0.1.7/target/release/.fingerprint/pyo3-macros-backend-e9813c72593a8600/lib-pyo3_macros_backend.json +0 -1
  59. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/.DS_Store +0 -0
  60. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/.gitignore +0 -0
  61. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/.python-version +0 -0
  62. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/Cargo.lock +0 -0
  63. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/Cargo.toml +0 -0
  64. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/README.md +0 -0
  65. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/src/.DS_Store +0 -0
  66. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/src/blindscrambler/__init__.py +0 -0
  67. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/src/blindscrambler/_core.pyi +0 -0
  68. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/src/blindscrambler/differential/__init__.py +0 -0
  69. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/src/blindscrambler/differential/discrete.py +0 -0
  70. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/src/blindscrambler/distributions/__init__.py +0 -0
  71. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/src/blindscrambler/distributions/cvdistributions.py +0 -0
  72. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/src/blindscrambler/matrix/__init__.py +0 -0
  73. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/src/blindscrambler/matrix/elementary.py +0 -0
  74. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/src/blindscrambler/model/__init__.py +0 -0
  75. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/src/blindscrambler/py.typed +0 -0
  76. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/src/lib.rs +0 -0
  77. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/.rustc_info.json +0 -0
  78. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.cargo-lock +0 -0
  79. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/autocfg-a7b9503e43f70dfd/dep-lib-autocfg +0 -0
  80. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/autocfg-a7b9503e43f70dfd/invoked.timestamp +0 -0
  81. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/autocfg-a7b9503e43f70dfd/lib-autocfg +0 -0
  82. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/autocfg-a7b9503e43f70dfd/lib-autocfg.json +0 -0
  83. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/autocfg-ec849e49b9b0ef7b/dep-lib-autocfg +0 -0
  84. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/autocfg-ec849e49b9b0ef7b/invoked.timestamp +0 -0
  85. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/autocfg-ec849e49b9b0ef7b/lib-autocfg +0 -0
  86. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/autocfg-ec849e49b9b0ef7b/lib-autocfg.json +0 -0
  87. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/blindscrambler-515225e0ba74eaea/dep-lib-_core +0 -0
  88. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/blindscrambler-515225e0ba74eaea/invoked.timestamp +0 -0
  89. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/cfg-if-6b1405009261e510/dep-lib-cfg_if +0 -0
  90. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/cfg-if-6b1405009261e510/invoked.timestamp +0 -0
  91. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/cfg-if-6b1405009261e510/lib-cfg_if +0 -0
  92. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/cfg-if-6b1405009261e510/lib-cfg_if.json +0 -0
  93. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/cfg-if-e2692dabafd67c3a/dep-lib-cfg_if +0 -0
  94. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/cfg-if-e2692dabafd67c3a/invoked.timestamp +0 -0
  95. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/cfg-if-e2692dabafd67c3a/lib-cfg_if +0 -0
  96. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/cfg-if-e2692dabafd67c3a/lib-cfg_if.json +0 -0
  97. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/heck-1e0efe12adb5e30d/dep-lib-heck +0 -0
  98. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/heck-1e0efe12adb5e30d/invoked.timestamp +0 -0
  99. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/heck-1e0efe12adb5e30d/lib-heck +0 -0
  100. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/heck-1e0efe12adb5e30d/lib-heck.json +0 -0
  101. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/heck-db8430659d799391/dep-lib-heck +0 -0
  102. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/heck-db8430659d799391/invoked.timestamp +0 -0
  103. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/heck-db8430659d799391/lib-heck +0 -0
  104. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/heck-db8430659d799391/lib-heck.json +0 -0
  105. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/indoc-07fc2b82ecaa9946/dep-lib-indoc +0 -0
  106. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/indoc-07fc2b82ecaa9946/invoked.timestamp +0 -0
  107. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/indoc-07fc2b82ecaa9946/lib-indoc +0 -0
  108. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/indoc-07fc2b82ecaa9946/lib-indoc.json +0 -0
  109. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/indoc-5c3ccbba070a5c21/dep-lib-indoc +0 -0
  110. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/indoc-5c3ccbba070a5c21/invoked.timestamp +0 -0
  111. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/indoc-5c3ccbba070a5c21/lib-indoc +0 -0
  112. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/indoc-5c3ccbba070a5c21/lib-indoc.json +0 -0
  113. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/libc-089751abe6465d96/run-build-script-build-script-build +0 -0
  114. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/libc-089751abe6465d96/run-build-script-build-script-build.json +0 -0
  115. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/libc-1048a0e1f7b7acb4/build-script-build-script-build +0 -0
  116. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/libc-1048a0e1f7b7acb4/build-script-build-script-build.json +0 -0
  117. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/libc-1048a0e1f7b7acb4/dep-build-script-build-script-build +0 -0
  118. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/libc-1048a0e1f7b7acb4/invoked.timestamp +0 -0
  119. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/libc-483d551a2b04c9ed/dep-lib-libc +0 -0
  120. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/libc-483d551a2b04c9ed/invoked.timestamp +0 -0
  121. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/libc-483d551a2b04c9ed/lib-libc +0 -0
  122. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/libc-483d551a2b04c9ed/lib-libc.json +0 -0
  123. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/libc-4d2ea9f18ff858a6/run-build-script-build-script-build +0 -0
  124. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/libc-4d2ea9f18ff858a6/run-build-script-build-script-build.json +0 -0
  125. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/libc-cc387f65ccd2cc68/dep-lib-libc +0 -0
  126. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/libc-cc387f65ccd2cc68/invoked.timestamp +0 -0
  127. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/libc-cc387f65ccd2cc68/lib-libc +0 -0
  128. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/libc-cc387f65ccd2cc68/lib-libc.json +0 -0
  129. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/libc-d684815009b829b4/build-script-build-script-build +0 -0
  130. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/libc-d684815009b829b4/build-script-build-script-build.json +0 -0
  131. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/libc-d684815009b829b4/dep-build-script-build-script-build +0 -0
  132. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/libc-d684815009b829b4/invoked.timestamp +0 -0
  133. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/memoffset-0bd42e3da4de5234/build-script-build-script-build +0 -0
  134. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/memoffset-0bd42e3da4de5234/build-script-build-script-build.json +0 -0
  135. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/memoffset-0bd42e3da4de5234/dep-build-script-build-script-build +0 -0
  136. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/memoffset-0bd42e3da4de5234/invoked.timestamp +0 -0
  137. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/memoffset-27028839ea0076a7/dep-lib-memoffset +0 -0
  138. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/memoffset-27028839ea0076a7/invoked.timestamp +0 -0
  139. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/memoffset-27028839ea0076a7/lib-memoffset +0 -0
  140. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/memoffset-27028839ea0076a7/lib-memoffset.json +0 -0
  141. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/memoffset-28fab8803985747e/build-script-build-script-build +0 -0
  142. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/memoffset-28fab8803985747e/build-script-build-script-build.json +0 -0
  143. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/memoffset-28fab8803985747e/dep-build-script-build-script-build +0 -0
  144. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/memoffset-28fab8803985747e/invoked.timestamp +0 -0
  145. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/memoffset-3de0f0a04958d438/dep-lib-memoffset +0 -0
  146. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/memoffset-3de0f0a04958d438/invoked.timestamp +0 -0
  147. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/memoffset-3de0f0a04958d438/lib-memoffset +0 -0
  148. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/memoffset-3de0f0a04958d438/lib-memoffset.json +0 -0
  149. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/memoffset-b512f260d0e5ed3a/run-build-script-build-script-build +0 -0
  150. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/memoffset-b512f260d0e5ed3a/run-build-script-build-script-build.json +0 -0
  151. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/memoffset-e3aa382409dc35df/run-build-script-build-script-build +0 -0
  152. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/memoffset-e3aa382409dc35df/run-build-script-build-script-build.json +0 -0
  153. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/once_cell-3835f1dea4952693/dep-lib-once_cell +0 -0
  154. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/once_cell-3835f1dea4952693/invoked.timestamp +0 -0
  155. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/once_cell-3835f1dea4952693/lib-once_cell +0 -0
  156. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/once_cell-3835f1dea4952693/lib-once_cell.json +0 -0
  157. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/once_cell-40215868d9ef2577/dep-lib-once_cell +0 -0
  158. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/once_cell-40215868d9ef2577/invoked.timestamp +0 -0
  159. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/once_cell-40215868d9ef2577/lib-once_cell +0 -0
  160. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/once_cell-40215868d9ef2577/lib-once_cell.json +0 -0
  161. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/once_cell-63c56b003983b4e1/dep-lib-once_cell +0 -0
  162. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/once_cell-63c56b003983b4e1/invoked.timestamp +0 -0
  163. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/once_cell-63c56b003983b4e1/lib-once_cell +0 -0
  164. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/once_cell-63c56b003983b4e1/lib-once_cell.json +0 -0
  165. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/once_cell-ec8f0e9efa07d507/dep-lib-once_cell +0 -0
  166. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/once_cell-ec8f0e9efa07d507/invoked.timestamp +0 -0
  167. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/once_cell-ec8f0e9efa07d507/lib-once_cell +0 -0
  168. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/once_cell-ec8f0e9efa07d507/lib-once_cell.json +0 -0
  169. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/proc-macro2-00da06a5dae54618/build-script-build-script-build +0 -0
  170. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/proc-macro2-00da06a5dae54618/build-script-build-script-build.json +0 -0
  171. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/proc-macro2-00da06a5dae54618/dep-build-script-build-script-build +0 -0
  172. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/proc-macro2-00da06a5dae54618/invoked.timestamp +0 -0
  173. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/proc-macro2-1c915e463d0f02c7/build-script-build-script-build +0 -0
  174. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/proc-macro2-1c915e463d0f02c7/build-script-build-script-build.json +0 -0
  175. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/proc-macro2-1c915e463d0f02c7/dep-build-script-build-script-build +0 -0
  176. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/proc-macro2-1c915e463d0f02c7/invoked.timestamp +0 -0
  177. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/proc-macro2-7e0d15658abd6998/dep-lib-proc_macro2 +0 -0
  178. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/proc-macro2-7e0d15658abd6998/invoked.timestamp +0 -0
  179. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/proc-macro2-7e0d15658abd6998/lib-proc_macro2 +0 -0
  180. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/proc-macro2-7e0d15658abd6998/lib-proc_macro2.json +0 -0
  181. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/proc-macro2-96f127e3ddb93fe4/run-build-script-build-script-build +0 -0
  182. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/proc-macro2-96f127e3ddb93fe4/run-build-script-build-script-build.json +0 -0
  183. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/proc-macro2-a237c3a746f321f4/dep-lib-proc_macro2 +0 -0
  184. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/proc-macro2-a237c3a746f321f4/invoked.timestamp +0 -0
  185. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/proc-macro2-a237c3a746f321f4/lib-proc_macro2 +0 -0
  186. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/proc-macro2-a237c3a746f321f4/lib-proc_macro2.json +0 -0
  187. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/proc-macro2-ba51ef0583c1dda7/run-build-script-build-script-build +0 -0
  188. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/proc-macro2-ba51ef0583c1dda7/run-build-script-build-script-build.json +0 -0
  189. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/pyo3-21edf82d33511c71/build-script-build-script-build +0 -0
  190. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/pyo3-21edf82d33511c71/build-script-build-script-build.json +0 -0
  191. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/pyo3-21edf82d33511c71/dep-build-script-build-script-build +0 -0
  192. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/pyo3-21edf82d33511c71/invoked.timestamp +0 -0
  193. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/pyo3-846aa149e4d593bd/dep-lib-pyo3 +0 -0
  194. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/pyo3-846aa149e4d593bd/invoked.timestamp +0 -0
  195. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/pyo3-846aa149e4d593bd/lib-pyo3 +0 -0
  196. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/pyo3-846aa149e4d593bd/lib-pyo3.json +0 -0
  197. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/pyo3-89601d31af12a035/run-build-script-build-script-build +0 -0
  198. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/pyo3-89601d31af12a035/run-build-script-build-script-build.json +0 -0
  199. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/pyo3-b5406c20eea00644/dep-build-script-build-script-build +0 -0
  200. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/pyo3-b5406c20eea00644/invoked.timestamp +0 -0
  201. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/pyo3-build-config-19e45e2b12999ce4/build-script-build-script-build +0 -0
  202. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/pyo3-build-config-19e45e2b12999ce4/build-script-build-script-build.json +0 -0
  203. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/pyo3-build-config-19e45e2b12999ce4/dep-build-script-build-script-build +0 -0
  204. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/pyo3-build-config-19e45e2b12999ce4/invoked.timestamp +0 -0
  205. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/pyo3-build-config-485f7efd6b2e6f06/dep-lib-pyo3_build_config +0 -0
  206. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/pyo3-build-config-485f7efd6b2e6f06/invoked.timestamp +0 -0
  207. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/pyo3-build-config-485f7efd6b2e6f06/lib-pyo3_build_config +0 -0
  208. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/pyo3-build-config-485f7efd6b2e6f06/lib-pyo3_build_config.json +0 -0
  209. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/pyo3-build-config-4d0fbe2a7f553b16/build-script-build-script-build +0 -0
  210. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/pyo3-build-config-4d0fbe2a7f553b16/build-script-build-script-build.json +0 -0
  211. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/pyo3-build-config-4d0fbe2a7f553b16/dep-build-script-build-script-build +0 -0
  212. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/pyo3-build-config-4d0fbe2a7f553b16/invoked.timestamp +0 -0
  213. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/pyo3-build-config-a8bde4920a4bfe99/invoked.timestamp +0 -0
  214. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/pyo3-build-config-da1a330592cf50bd/run-build-script-build-script-build +0 -0
  215. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/pyo3-build-config-da1a330592cf50bd/run-build-script-build-script-build.json +0 -0
  216. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/pyo3-fe834dd71f882076/dep-lib-pyo3 +0 -0
  217. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/pyo3-fe834dd71f882076/invoked.timestamp +0 -0
  218. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/pyo3-ffi-3b410603869916e1/dep-lib-pyo3_ffi +0 -0
  219. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/pyo3-ffi-3b410603869916e1/invoked.timestamp +0 -0
  220. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/pyo3-ffi-4b75fa99b2fd670d/dep-build-script-build-script-build +0 -0
  221. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/pyo3-ffi-4b75fa99b2fd670d/invoked.timestamp +0 -0
  222. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/pyo3-ffi-50ad4923338d6e05/run-build-script-build-script-build +0 -0
  223. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/pyo3-ffi-50ad4923338d6e05/run-build-script-build-script-build.json +0 -0
  224. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/pyo3-ffi-797a29b5bf1ec26d/build-script-build-script-build +0 -0
  225. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/pyo3-ffi-797a29b5bf1ec26d/build-script-build-script-build.json +0 -0
  226. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/pyo3-ffi-797a29b5bf1ec26d/dep-build-script-build-script-build +0 -0
  227. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/pyo3-ffi-797a29b5bf1ec26d/invoked.timestamp +0 -0
  228. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/pyo3-ffi-f31b261da8032367/dep-lib-pyo3_ffi +0 -0
  229. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/pyo3-ffi-f31b261da8032367/invoked.timestamp +0 -0
  230. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/pyo3-ffi-f31b261da8032367/lib-pyo3_ffi +0 -0
  231. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/pyo3-ffi-f31b261da8032367/lib-pyo3_ffi.json +0 -0
  232. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/pyo3-macros-039731653063c94a/dep-lib-pyo3_macros +0 -0
  233. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/pyo3-macros-039731653063c94a/invoked.timestamp +0 -0
  234. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/pyo3-macros-ac6298b28244f8de/dep-lib-pyo3_macros +0 -0
  235. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/pyo3-macros-ac6298b28244f8de/invoked.timestamp +0 -0
  236. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/pyo3-macros-ac6298b28244f8de/lib-pyo3_macros +0 -0
  237. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/pyo3-macros-ac6298b28244f8de/lib-pyo3_macros.json +0 -0
  238. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/pyo3-macros-backend-1419f766b92c0009/dep-lib-pyo3_macros_backend +0 -0
  239. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/pyo3-macros-backend-1419f766b92c0009/invoked.timestamp +0 -0
  240. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/pyo3-macros-backend-1419f766b92c0009/lib-pyo3_macros_backend +0 -0
  241. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/pyo3-macros-backend-1419f766b92c0009/lib-pyo3_macros_backend.json +0 -0
  242. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/pyo3-macros-backend-a8e6c42699c75a62/dep-build-script-build-script-build +0 -0
  243. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/pyo3-macros-backend-a8e6c42699c75a62/invoked.timestamp +0 -0
  244. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/pyo3-macros-backend-e82f060013250e12/build-script-build-script-build +0 -0
  245. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/pyo3-macros-backend-e82f060013250e12/build-script-build-script-build.json +0 -0
  246. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/pyo3-macros-backend-e82f060013250e12/dep-build-script-build-script-build +0 -0
  247. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/pyo3-macros-backend-e82f060013250e12/invoked.timestamp +0 -0
  248. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/pyo3-macros-backend-e9813c72593a8600/dep-lib-pyo3_macros_backend +0 -0
  249. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/pyo3-macros-backend-e9813c72593a8600/invoked.timestamp +0 -0
  250. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/pyo3-macros-backend-ecfd32509acce42f/run-build-script-build-script-build +0 -0
  251. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/pyo3-macros-backend-ecfd32509acce42f/run-build-script-build-script-build.json +0 -0
  252. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/quote-a46488ac4a77f9e2/dep-lib-quote +0 -0
  253. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/quote-a46488ac4a77f9e2/invoked.timestamp +0 -0
  254. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/quote-a46488ac4a77f9e2/lib-quote +0 -0
  255. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/quote-a46488ac4a77f9e2/lib-quote.json +0 -0
  256. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/quote-c1920bf86f8fba6d/dep-lib-quote +0 -0
  257. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/quote-c1920bf86f8fba6d/invoked.timestamp +0 -0
  258. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/quote-c1920bf86f8fba6d/lib-quote +0 -0
  259. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/quote-c1920bf86f8fba6d/lib-quote.json +0 -0
  260. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/syn-2d6742f1c77f2874/dep-lib-syn +0 -0
  261. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/syn-2d6742f1c77f2874/invoked.timestamp +0 -0
  262. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/syn-2d6742f1c77f2874/lib-syn +0 -0
  263. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/syn-2d6742f1c77f2874/lib-syn.json +0 -0
  264. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/syn-d17ae06f6c5404ec/dep-lib-syn +0 -0
  265. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/syn-d17ae06f6c5404ec/invoked.timestamp +0 -0
  266. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/syn-d17ae06f6c5404ec/lib-syn +0 -0
  267. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/syn-d17ae06f6c5404ec/lib-syn.json +0 -0
  268. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/target-lexicon-1461f2bb5fb7494d/dep-lib-target_lexicon +0 -0
  269. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/target-lexicon-1461f2bb5fb7494d/invoked.timestamp +0 -0
  270. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/target-lexicon-1461f2bb5fb7494d/lib-target_lexicon +0 -0
  271. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/target-lexicon-1461f2bb5fb7494d/lib-target_lexicon.json +0 -0
  272. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/target-lexicon-705997156e45bf9a/dep-lib-target_lexicon +0 -0
  273. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/target-lexicon-705997156e45bf9a/invoked.timestamp +0 -0
  274. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/target-lexicon-705997156e45bf9a/lib-target_lexicon +0 -0
  275. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/target-lexicon-705997156e45bf9a/lib-target_lexicon.json +0 -0
  276. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/target-lexicon-c4ba7987d0594e05/run-build-script-build-script-build +0 -0
  277. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/target-lexicon-c4ba7987d0594e05/run-build-script-build-script-build.json +0 -0
  278. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/target-lexicon-d98482d69aa02bc4/run-build-script-build-script-build +0 -0
  279. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/target-lexicon-d98482d69aa02bc4/run-build-script-build-script-build.json +0 -0
  280. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/target-lexicon-de6a61689af9d42b/build-script-build-script-build +0 -0
  281. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/target-lexicon-de6a61689af9d42b/build-script-build-script-build.json +0 -0
  282. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/target-lexicon-de6a61689af9d42b/dep-build-script-build-script-build +0 -0
  283. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/target-lexicon-de6a61689af9d42b/invoked.timestamp +0 -0
  284. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/target-lexicon-f57b274edbb686fa/build-script-build-script-build +0 -0
  285. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/target-lexicon-f57b274edbb686fa/build-script-build-script-build.json +0 -0
  286. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/target-lexicon-f57b274edbb686fa/dep-build-script-build-script-build +0 -0
  287. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/target-lexicon-f57b274edbb686fa/invoked.timestamp +0 -0
  288. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/unicode-ident-3b7c11ea57a1ce1d/dep-lib-unicode_ident +0 -0
  289. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/unicode-ident-3b7c11ea57a1ce1d/invoked.timestamp +0 -0
  290. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/unicode-ident-3b7c11ea57a1ce1d/lib-unicode_ident +0 -0
  291. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/unicode-ident-3b7c11ea57a1ce1d/lib-unicode_ident.json +0 -0
  292. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/unicode-ident-9fc3822a50b81eff/dep-lib-unicode_ident +0 -0
  293. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/unicode-ident-9fc3822a50b81eff/invoked.timestamp +0 -0
  294. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/unicode-ident-9fc3822a50b81eff/lib-unicode_ident +0 -0
  295. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/unicode-ident-9fc3822a50b81eff/lib-unicode_ident.json +0 -0
  296. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/unindent-93f5e45976adf1db/dep-lib-unindent +0 -0
  297. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/unindent-93f5e45976adf1db/invoked.timestamp +0 -0
  298. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/unindent-93f5e45976adf1db/lib-unindent +0 -0
  299. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/unindent-93f5e45976adf1db/lib-unindent.json +0 -0
  300. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/unindent-b2dda1915d242574/dep-lib-unindent +0 -0
  301. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/unindent-b2dda1915d242574/invoked.timestamp +0 -0
  302. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/unindent-b2dda1915d242574/lib-unindent +0 -0
  303. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/.fingerprint/unindent-b2dda1915d242574/lib-unindent.json +0 -0
  304. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/_core.d +0 -0
  305. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/autocfg-a7b9503e43f70dfd.d +0 -0
  306. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/autocfg-ec849e49b9b0ef7b.d +0 -0
  307. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/cfg_if-6b1405009261e510.d +0 -0
  308. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/cfg_if-e2692dabafd67c3a.d +0 -0
  309. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/heck-1e0efe12adb5e30d.d +0 -0
  310. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/heck-db8430659d799391.d +0 -0
  311. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/indoc-07fc2b82ecaa9946.d +0 -0
  312. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/indoc-5c3ccbba070a5c21.d +0 -0
  313. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/lib_core.dylib +0 -0
  314. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/libautocfg-a7b9503e43f70dfd.rlib +0 -0
  315. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/libautocfg-a7b9503e43f70dfd.rmeta +0 -0
  316. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/libautocfg-ec849e49b9b0ef7b.rlib +0 -0
  317. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/libautocfg-ec849e49b9b0ef7b.rmeta +0 -0
  318. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/libc-483d551a2b04c9ed.d +0 -0
  319. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/libc-cc387f65ccd2cc68.d +0 -0
  320. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/libcfg_if-6b1405009261e510.rlib +0 -0
  321. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/libcfg_if-6b1405009261e510.rmeta +0 -0
  322. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/libcfg_if-e2692dabafd67c3a.rlib +0 -0
  323. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/libcfg_if-e2692dabafd67c3a.rmeta +0 -0
  324. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/libheck-1e0efe12adb5e30d.rlib +0 -0
  325. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/libheck-1e0efe12adb5e30d.rmeta +0 -0
  326. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/libheck-db8430659d799391.rlib +0 -0
  327. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/libheck-db8430659d799391.rmeta +0 -0
  328. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/libindoc-07fc2b82ecaa9946.dylib +0 -0
  329. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/libindoc-5c3ccbba070a5c21.dylib +0 -0
  330. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/liblibc-483d551a2b04c9ed.rlib +0 -0
  331. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/liblibc-483d551a2b04c9ed.rmeta +0 -0
  332. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/liblibc-cc387f65ccd2cc68.rlib +0 -0
  333. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/liblibc-cc387f65ccd2cc68.rmeta +0 -0
  334. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/libmemoffset-27028839ea0076a7.rlib +0 -0
  335. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/libmemoffset-27028839ea0076a7.rmeta +0 -0
  336. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/libmemoffset-3de0f0a04958d438.rlib +0 -0
  337. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/libmemoffset-3de0f0a04958d438.rmeta +0 -0
  338. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/libonce_cell-3835f1dea4952693.rlib +0 -0
  339. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/libonce_cell-3835f1dea4952693.rmeta +0 -0
  340. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/libonce_cell-40215868d9ef2577.rlib +0 -0
  341. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/libonce_cell-40215868d9ef2577.rmeta +0 -0
  342. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/libonce_cell-63c56b003983b4e1.rlib +0 -0
  343. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/libonce_cell-63c56b003983b4e1.rmeta +0 -0
  344. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/libonce_cell-ec8f0e9efa07d507.rlib +0 -0
  345. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/libonce_cell-ec8f0e9efa07d507.rmeta +0 -0
  346. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/libproc_macro2-7e0d15658abd6998.rlib +0 -0
  347. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/libproc_macro2-7e0d15658abd6998.rmeta +0 -0
  348. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/libproc_macro2-a237c3a746f321f4.rlib +0 -0
  349. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/libproc_macro2-a237c3a746f321f4.rmeta +0 -0
  350. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/libpyo3-846aa149e4d593bd.rlib +0 -0
  351. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/libpyo3-846aa149e4d593bd.rmeta +0 -0
  352. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/libpyo3_build_config-485f7efd6b2e6f06.rlib +0 -0
  353. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/libpyo3_build_config-485f7efd6b2e6f06.rmeta +0 -0
  354. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/libpyo3_ffi-3b410603869916e1.rlib +0 -0
  355. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/libpyo3_ffi-3b410603869916e1.rmeta +0 -0
  356. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/libpyo3_ffi-f31b261da8032367.rlib +0 -0
  357. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/libpyo3_ffi-f31b261da8032367.rmeta +0 -0
  358. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/libpyo3_macros-ac6298b28244f8de.dylib +0 -0
  359. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/libpyo3_macros_backend-1419f766b92c0009.rlib +0 -0
  360. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/libpyo3_macros_backend-1419f766b92c0009.rmeta +0 -0
  361. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/libquote-a46488ac4a77f9e2.rlib +0 -0
  362. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/libquote-a46488ac4a77f9e2.rmeta +0 -0
  363. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/libquote-c1920bf86f8fba6d.rlib +0 -0
  364. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/libquote-c1920bf86f8fba6d.rmeta +0 -0
  365. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/libsyn-2d6742f1c77f2874.rlib +0 -0
  366. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/libsyn-2d6742f1c77f2874.rmeta +0 -0
  367. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/libsyn-d17ae06f6c5404ec.rlib +0 -0
  368. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/libsyn-d17ae06f6c5404ec.rmeta +0 -0
  369. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/libtarget_lexicon-1461f2bb5fb7494d.rlib +0 -0
  370. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/libtarget_lexicon-1461f2bb5fb7494d.rmeta +0 -0
  371. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/libtarget_lexicon-705997156e45bf9a.rlib +0 -0
  372. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/libtarget_lexicon-705997156e45bf9a.rmeta +0 -0
  373. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/libunicode_ident-3b7c11ea57a1ce1d.rlib +0 -0
  374. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/libunicode_ident-3b7c11ea57a1ce1d.rmeta +0 -0
  375. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/libunicode_ident-9fc3822a50b81eff.rlib +0 -0
  376. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/libunicode_ident-9fc3822a50b81eff.rmeta +0 -0
  377. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/libunindent-93f5e45976adf1db.rlib +0 -0
  378. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/libunindent-93f5e45976adf1db.rmeta +0 -0
  379. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/libunindent-b2dda1915d242574.rlib +0 -0
  380. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/libunindent-b2dda1915d242574.rmeta +0 -0
  381. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/memoffset-27028839ea0076a7.d +0 -0
  382. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/memoffset-3de0f0a04958d438.d +0 -0
  383. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/once_cell-3835f1dea4952693.d +0 -0
  384. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/once_cell-40215868d9ef2577.d +0 -0
  385. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/once_cell-63c56b003983b4e1.d +0 -0
  386. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/once_cell-ec8f0e9efa07d507.d +0 -0
  387. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/proc_macro2-7e0d15658abd6998.d +0 -0
  388. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/proc_macro2-a237c3a746f321f4.d +0 -0
  389. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/pyo3-846aa149e4d593bd.d +0 -0
  390. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/pyo3-fe834dd71f882076.d +0 -0
  391. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/pyo3_build_config-485f7efd6b2e6f06.d +0 -0
  392. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/pyo3_build_config-a8bde4920a4bfe99.d +0 -0
  393. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/pyo3_ffi-3b410603869916e1.d +0 -0
  394. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/pyo3_ffi-f31b261da8032367.d +0 -0
  395. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/pyo3_macros-039731653063c94a.d +0 -0
  396. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/pyo3_macros-ac6298b28244f8de.d +0 -0
  397. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/pyo3_macros_backend-1419f766b92c0009.d +0 -0
  398. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/pyo3_macros_backend-e9813c72593a8600.d +0 -0
  399. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/quote-a46488ac4a77f9e2.d +0 -0
  400. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/quote-c1920bf86f8fba6d.d +0 -0
  401. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/syn-2d6742f1c77f2874.d +0 -0
  402. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/syn-d17ae06f6c5404ec.d +0 -0
  403. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/target_lexicon-1461f2bb5fb7494d.d +0 -0
  404. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/target_lexicon-705997156e45bf9a.d +0 -0
  405. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/unicode_ident-3b7c11ea57a1ce1d.d +0 -0
  406. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/unicode_ident-9fc3822a50b81eff.d +0 -0
  407. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/unindent-93f5e45976adf1db.d +0 -0
  408. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/deps/unindent-b2dda1915d242574.d +0 -0
  409. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/lib_core.d +0 -0
  410. {blindscrambler-0.1.7 → blindscrambler-0.1.8}/target/release/lib_core.dylib +0 -0
@@ -1,12 +1,13 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: blindscrambler
3
- Version: 0.1.7
3
+ Version: 0.1.8
4
4
  Requires-Dist: matplotlib>=3.10.6
5
5
  Requires-Dist: numpy>=2.3.3
6
6
  Requires-Dist: polars>=1.34.0
7
7
  Requires-Dist: scikit-learn>=1.7.2
8
8
  Requires-Dist: scipy>=1.16.2
9
9
  Requires-Dist: torch>=2.8.0
10
+ Requires-Dist: torcheval>=0.0.7
10
11
  Requires-Dist: twine>=6.1.0
11
12
  Summary: Add your description here
12
13
  Author-email: blindscramblergh <blindscrambler@gmail.com>
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "blindscrambler"
3
- version = "0.1.7"
3
+ version = "0.1.8"
4
4
  description = "Add your description here"
5
5
  readme = "README.md"
6
6
  authors = [
@@ -14,6 +14,7 @@ dependencies = [
14
14
  "scikit-learn>=1.7.2",
15
15
  "scipy>=1.16.2",
16
16
  "torch>=2.8.0",
17
+ "torcheval>=0.0.7",
17
18
  "twine>=6.1.0",
18
19
  ]
19
20
 
@@ -0,0 +1,285 @@
1
+ # Author metadata
2
+
3
+ __Name__ = "Syed Raza"
4
+ __email__ = "sar0033@uah.edu"
5
+
6
+ # import statements
7
+ import torch
8
+ import torch.nn as nn
9
+ import torch.optim as optim
10
+ import numpy as np
11
+ import matplotlib.pyplot as plt
12
+ from scipy import stats
13
+ from typing import Tuple, Optional
14
+ import warnings
15
+ from torcheval.metrics import R2Score
16
+ import polars
17
+ from sklearn.model_selection import train_test_split
18
+
19
+ # add a linear Regression class:
20
+ class LinearRegression:
21
+ """
22
+ A PyTorch-based Linear Regression implementation for one variable.
23
+
24
+ Model: y = w_1 * x + w_0
25
+ Loss: Mean Squared Error
26
+
27
+ Features:
28
+ - Gradient-based optimization using PyTorch
29
+ - Confidence intervals for parameters w_1 and w_0
30
+ """
31
+
32
+ def __init__(self, learning_rate: float = 0.01, max_epochs: int = 1000,
33
+ tolerance: float = 1e-6):
34
+
35
+ """
36
+ The Constructor function for LinearRegression Class
37
+
38
+ Params:
39
+ - learning rate, for the gradient descent algorithm
40
+ - maximum number of epochs
41
+ - tolerance, to know if things have converged
42
+ """
43
+
44
+ # make the arguments
45
+ self.learning_rate = learning_rate
46
+ self.max_epochs = max_epochs
47
+ self.tolerance = tolerance
48
+
49
+ self.nsamples = None
50
+ self.X_train = None
51
+ self.y_train = None
52
+ self.X_test = None
53
+ self.y_test = None
54
+
55
+ # to see if the instance is fitted or not
56
+ self.fitted = False
57
+
58
+ # the model parameters
59
+ self.w_0 = nn.Parameter(torch.randn(1, requires_grad=True)) # intercept
60
+ self.w_1 = nn.Parameter(torch.randn(1, requires_grad=True)) # slope
61
+
62
+ # loss function and its optimizer
63
+ self.lossfunction = nn.MSELoss()
64
+ self.optimizer = optim.SGD([self.w_0, self.w_1], lr = self.learning_rate)
65
+
66
+ # hold intermediate values of w_0 and w_1 and loss
67
+ self.inter_w_0 = []
68
+ self.inter_w_1 = []
69
+ self.inter_loss = []
70
+
71
+
72
+ def forward(self, X: torch.tensor) -> torch.tensor:
73
+ """
74
+ Forward function for to specify linear model and compute the response
75
+
76
+ Params:
77
+ - X: torch.tensor
78
+ the input vector of size (n_samples, )
79
+ Returns:
80
+ - self.w_1 * X + self.w_0
81
+ ` the output is linear model result
82
+
83
+ """
84
+ return self.w_1 * X + self.w_0
85
+
86
+
87
+ def fit(self, X_train: np.ndarray, y_train: np.ndarray, X_test: np.ndarray, y_test: np.ndarray) -> 'LinearRegression':
88
+ """
89
+ The function where the training happens
90
+
91
+ Params:
92
+ - X, the training dataset of features
93
+ - y, the training dataset of target
94
+ """
95
+
96
+ # convert to Pytorch tensors:
97
+ self.X_train = torch.tensor(X_train, dtype=torch.float32)
98
+ self.y_train = torch.tensor(y_train, dtype=torch.float32)
99
+ self.X_test = torch.tensor(X_test, dtype=torch.float32)
100
+ self.y_test = torch.tensor(y_test, dtype=torch.float32)
101
+ self.nsamples = len(X_train) # samples in the training set
102
+
103
+ # the training loop:
104
+ prev_loss = float('inf')
105
+
106
+ # reset history
107
+ self.inter_loss.clear()
108
+ self.inter_w_0.clear()
109
+ self.inter_w_1.clear()
110
+
111
+ for epoch in range(self.max_epochs):
112
+ # reset the gradients
113
+ self.optimizer.zero_grad()
114
+
115
+ # premature prediction
116
+ y_train_pred = self.forward(self.X_train)
117
+
118
+ # loss function
119
+ loss = self.lossfunction(y_train_pred, self.y_train)
120
+
121
+ # automatic gradient backward pass
122
+ loss.backward()
123
+
124
+ # update model parameters
125
+ self.optimizer.step()
126
+
127
+ # get the current loss and save it
128
+ current_loss = float(loss.detach().item())
129
+
130
+ # save intermediate loss and model parameters
131
+ self.inter_loss.append(current_loss)
132
+ self.inter_w_0.append(float(self.w_0.detach().item()))
133
+ self.inter_w_1.append(float(self.w_1.detach().item()))
134
+
135
+ if abs(prev_loss - current_loss) < self.tolerance:
136
+ print(f"Converged after {epoch + 1} epochs")
137
+ break
138
+
139
+ prev_loss = current_loss
140
+
141
+ # make predictions on the test set
142
+ y_test_pred = self.forward(self.X_test)
143
+
144
+ # create an R^2 metric type
145
+ R2 = R2Score()
146
+ R2.update(y_test_pred, self.y_test)
147
+ print("The R2 score for the test set is :", R2.compute())
148
+
149
+ self.fitted = True
150
+ return self
151
+
152
+ def predict(self, X: np.ndarray) -> np.ndarray:
153
+ """
154
+ Make predictions on the new/unseen data
155
+
156
+ Params:
157
+ - feature vector X for the test set.
158
+ Returns:
159
+ - predictions in a numpy array
160
+ """
161
+
162
+ # making sure that the model is fitted lol
163
+ if not self.fitted:
164
+ raise ValueError("Model must be fitted before making predictions")
165
+
166
+ # make it a tensor
167
+ X_tensor = torch.tensor(X, dtype=torch.float32)
168
+
169
+ with torch.no_grad():
170
+ predictions = self.forward(X_tensor)
171
+
172
+ return predictions.numpy()
173
+
174
+
175
+ def analysis_plot(self, show: bool = True, save_path: Optional[str] = None):
176
+ """
177
+ Create a 2x2 figure showing:
178
+ - Original data with fitted regression line
179
+ - Training loss over epochs
180
+ - w0 trajectory over epochs
181
+ - w1 trajectory over epochs
182
+ """
183
+ if not self.fitted:
184
+ raise ValueError("Model must be fitted before plotting.")
185
+ if len(self.inter_loss) == 0:
186
+ warnings.warn("No training history recorded; plots may be empty.")
187
+
188
+ fig, axs = plt.subplots(2, 2, figsize=(12, 8))
189
+
190
+ # 1) Data + fitted line
191
+ ax = axs[0, 0]
192
+
193
+ # scatter only the test set
194
+ if self.X_test is not None and self.y_test is not None:
195
+ ax.scatter(
196
+ self.X_test.detach().cpu().numpy(),
197
+ self.y_test.detach().cpu().numpy(),
198
+ s=12, alpha=0.7, label="Test"
199
+ )
200
+ # Line range from min/max of test X only
201
+ xmin = float(torch.min(self.X_test).item())
202
+ xmax = float(torch.max(self.X_test).item())
203
+ else:
204
+ xmin, xmax = -1.0, 1.0
205
+
206
+ x_line = torch.linspace(xmin, xmax, 200)
207
+ with torch.no_grad():
208
+ y_line = self.forward(x_line).detach().cpu().numpy()
209
+ w0 = float(self.w_0.detach().item())
210
+ w1 = float(self.w_1.detach().item())
211
+ ax.plot(
212
+ x_line.detach().cpu().numpy(),
213
+ y_line,
214
+ color="crimson",
215
+ label=f"Fit: y = {w1:.4f} x + {w0:.4f}"
216
+ )
217
+
218
+ ax.set_title("Test Data and Fitted Line")
219
+ ax.set_xlabel("X")
220
+ ax.set_ylabel("y")
221
+ ax.legend()
222
+ ax.grid(True, alpha=0.2)
223
+
224
+ # 2) Loss
225
+ ax = axs[0, 1]
226
+ if self.inter_loss:
227
+ ax.plot(range(1, len(self.inter_loss) + 1), self.inter_loss, color="steelblue")
228
+ ax.set_title("Training Loss (MSE)")
229
+ ax.set_xlabel("Epoch")
230
+ ax.set_ylabel("Loss")
231
+ ax.grid(True, alpha=0.2)
232
+
233
+ # 3) w0 trajectory
234
+ ax = axs[1, 0]
235
+ if self.inter_w_0:
236
+ ax.plot(range(1, len(self.inter_w_0) + 1), self.inter_w_0, color="darkgreen")
237
+ ax.set_title("w0 trajectory")
238
+ ax.set_xlabel("Epoch")
239
+ ax.set_ylabel("w0")
240
+ ax.grid(True, alpha=0.2)
241
+
242
+ # 4) w1 trajectory
243
+ ax = axs[1, 1]
244
+ if self.inter_w_1:
245
+ ax.plot(range(1, len(self.inter_w_1) + 1), self.inter_w_1, color="darkorange")
246
+ ax.set_title("w1 trajectory")
247
+ ax.set_xlabel("Epoch")
248
+ ax.set_ylabel("w1")
249
+ ax.grid(True, alpha=0.2)
250
+
251
+ fig.tight_layout()
252
+ if save_path:
253
+ fig.savefig(save_path, dpi=150, bbox_inches="tight")
254
+ if show:
255
+ plt.show()
256
+ else:
257
+ plt.close(fig)
258
+ return fig, axs
259
+
260
+ if __name__ == "__main__":
261
+
262
+ # the path of the file
263
+ csv_path = "/Users/syedraza/Desktop/UAH/Classes/Fall2025/CPE586-MachineLearning/HWs/hw3/Hydropower.csv"
264
+
265
+ # read in the needed data
266
+ data_frame = polars.read_csv(csv_path)["BCR", "AnnualProduction"]
267
+
268
+ # separate out features and targets
269
+ X = data_frame["BCR"]
270
+ y = data_frame["AnnualProduction"]
271
+
272
+ # train test split this
273
+ X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25)
274
+
275
+ # make a LinearRegression() instance
276
+ model = LinearRegression()
277
+
278
+ # .fit() takes test set as well because it has to calculate the R2 score
279
+ model.fit(X_train, y_train, X_test, y_test)
280
+
281
+ # make predictions
282
+ predictions = model.predict(X_test)
283
+
284
+ # make the required plots
285
+ model.analysis_plot()
@@ -0,0 +1 @@
1
+ {"rustc":9783247635632824192,"features":"[]","declared_features":"[]","target":16968402954708964823,"profile":4986711158483450461,"path":10763286916239946207,"deps":[[557099714978251243,"pyo3",false,16177746107562213941]],"local":[{"CheckDepInfo":{"dep_info":"release/.fingerprint/blindscrambler-515225e0ba74eaea/dep-lib-_core","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}
@@ -1 +1 @@
1
- {"rustc":9783247635632824192,"features":"[\"abi3\", \"abi3-py310\", \"abi3-py311\", \"abi3-py312\", \"abi3-py39\", \"default\", \"extension-module\", \"indoc\", \"macros\", \"pyo3-macros\", \"unindent\"]","declared_features":"[\"abi3\", \"abi3-py310\", \"abi3-py311\", \"abi3-py312\", \"abi3-py37\", \"abi3-py38\", \"abi3-py39\", \"anyhow\", \"auto-initialize\", \"chrono\", \"chrono-tz\", \"default\", \"either\", \"experimental-async\", \"experimental-inspect\", \"extension-module\", \"eyre\", \"full\", \"generate-import-lib\", \"gil-refs\", \"hashbrown\", \"indexmap\", \"indoc\", \"inventory\", \"macros\", \"multiple-pymethods\", \"nightly\", \"num-bigint\", \"num-complex\", \"num-rational\", \"py-clone\", \"pyo3-macros\", \"rust_decimal\", \"serde\", \"smallvec\", \"unindent\"]","target":5408242616063297496,"profile":2698605196217230458,"path":1740881551465272660,"deps":[[9343146279897821472,"pyo3_build_config",false,7690068936405649700]],"local":[{"CheckDepInfo":{"dep_info":"release/.fingerprint/pyo3-b5406c20eea00644/dep-build-script-build-script-build","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}
1
+ {"rustc":9783247635632824192,"features":"[\"abi3\", \"abi3-py310\", \"abi3-py311\", \"abi3-py312\", \"abi3-py39\", \"default\", \"extension-module\", \"indoc\", \"macros\", \"pyo3-macros\", \"unindent\"]","declared_features":"[\"abi3\", \"abi3-py310\", \"abi3-py311\", \"abi3-py312\", \"abi3-py37\", \"abi3-py38\", \"abi3-py39\", \"anyhow\", \"auto-initialize\", \"chrono\", \"chrono-tz\", \"default\", \"either\", \"experimental-async\", \"experimental-inspect\", \"extension-module\", \"eyre\", \"full\", \"generate-import-lib\", \"gil-refs\", \"hashbrown\", \"indexmap\", \"indoc\", \"inventory\", \"macros\", \"multiple-pymethods\", \"nightly\", \"num-bigint\", \"num-complex\", \"num-rational\", \"py-clone\", \"pyo3-macros\", \"rust_decimal\", \"serde\", \"smallvec\", \"unindent\"]","target":5408242616063297496,"profile":2698605196217230458,"path":1740881551465272660,"deps":[[9343146279897821472,"pyo3_build_config",false,57653756893044247]],"local":[{"CheckDepInfo":{"dep_info":"release/.fingerprint/pyo3-b5406c20eea00644/dep-build-script-build-script-build","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}
@@ -1 +1 @@
1
- {"rustc":9783247635632824192,"features":"[\"abi3\", \"abi3-py310\", \"abi3-py311\", \"abi3-py312\", \"abi3-py39\", \"default\", \"extension-module\", \"resolve-config\"]","declared_features":"[\"abi3\", \"abi3-py310\", \"abi3-py311\", \"abi3-py312\", \"abi3-py37\", \"abi3-py38\", \"abi3-py39\", \"default\", \"extension-module\", \"python3-dll-a\", \"resolve-config\"]","target":8254743344416261242,"profile":1369601567987815722,"path":1904922387345736984,"deps":[[3722963349756955755,"once_cell",false,15181595072360769438],[9343146279897821472,"build_script_build",false,343647842405691462],[10296317077653712691,"target_lexicon",false,18061361728307659801]],"local":[{"CheckDepInfo":{"dep_info":"release/.fingerprint/pyo3-build-config-a8bde4920a4bfe99/dep-lib-pyo3_build_config","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}
1
+ {"rustc":9783247635632824192,"features":"[\"abi3\", \"abi3-py310\", \"abi3-py311\", \"abi3-py312\", \"abi3-py39\", \"default\", \"extension-module\", \"resolve-config\"]","declared_features":"[\"abi3\", \"abi3-py310\", \"abi3-py311\", \"abi3-py312\", \"abi3-py37\", \"abi3-py38\", \"abi3-py39\", \"default\", \"extension-module\", \"python3-dll-a\", \"resolve-config\"]","target":8254743344416261242,"profile":1369601567987815722,"path":1904922387345736984,"deps":[[3722963349756955755,"once_cell",false,15181595072360769438],[9343146279897821472,"build_script_build",false,13778061898030582405],[10296317077653712691,"target_lexicon",false,18061361728307659801]],"local":[{"CheckDepInfo":{"dep_info":"release/.fingerprint/pyo3-build-config-a8bde4920a4bfe99/dep-lib-pyo3_build_config","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}
@@ -1 +1 @@
1
- {"rustc":9783247635632824192,"features":"","declared_features":"","target":0,"profile":0,"path":0,"deps":[[9343146279897821472,"build_script_build",false,1494056717172118456]],"local":[{"RerunIfEnvChanged":{"var":"PYO3_CONFIG_FILE","val":null}},{"RerunIfEnvChanged":{"var":"PYO3_NO_PYTHON","val":null}},{"RerunIfEnvChanged":{"var":"PYO3_ENVIRONMENT_SIGNATURE","val":"cpython-3.12-64bit"}},{"RerunIfEnvChanged":{"var":"PYO3_PYTHON","val":"/Users/syedraza/.cache/uv/builds-v0/.tmp9hihpC/bin/python"}}],"rustflags":[],"config":0,"compile_kind":0}
1
+ {"rustc":9783247635632824192,"features":"","declared_features":"","target":0,"profile":0,"path":0,"deps":[[9343146279897821472,"build_script_build",false,1494056717172118456]],"local":[{"RerunIfEnvChanged":{"var":"PYO3_CONFIG_FILE","val":null}},{"RerunIfEnvChanged":{"var":"PYO3_NO_PYTHON","val":null}},{"RerunIfEnvChanged":{"var":"PYO3_ENVIRONMENT_SIGNATURE","val":"cpython-3.12-64bit"}},{"RerunIfEnvChanged":{"var":"PYO3_PYTHON","val":"/Users/syedraza/.cache/uv/builds-v0/.tmpqL9vO2/bin/python"}}],"rustflags":[],"config":0,"compile_kind":0}
@@ -1 +1 @@
1
- {"rustc":9783247635632824192,"features":"","declared_features":"","target":0,"profile":0,"path":0,"deps":[[557099714978251243,"build_script_build",false,13656521050910247731],[46745629712228035,"build_script_build",false,1702343118843129758]],"local":[{"Precalculated":"0.22.6"}],"rustflags":[],"config":0,"compile_kind":0}
1
+ {"rustc":9783247635632824192,"features":"","declared_features":"","target":0,"profile":0,"path":0,"deps":[[557099714978251243,"build_script_build",false,5980996520398471520],[46745629712228035,"build_script_build",false,14166274297650500490]],"local":[{"Precalculated":"0.22.6"}],"rustflags":[],"config":0,"compile_kind":0}
@@ -1 +1 @@
1
- {"rustc":9783247635632824192,"features":"[\"abi3\", \"abi3-py310\", \"abi3-py311\", \"abi3-py312\", \"abi3-py39\", \"default\", \"extension-module\", \"indoc\", \"macros\", \"pyo3-macros\", \"unindent\"]","declared_features":"[\"abi3\", \"abi3-py310\", \"abi3-py311\", \"abi3-py312\", \"abi3-py37\", \"abi3-py38\", \"abi3-py39\", \"anyhow\", \"auto-initialize\", \"chrono\", \"chrono-tz\", \"default\", \"either\", \"experimental-async\", \"experimental-inspect\", \"extension-module\", \"eyre\", \"full\", \"generate-import-lib\", \"gil-refs\", \"hashbrown\", \"indexmap\", \"indoc\", \"inventory\", \"macros\", \"multiple-pymethods\", \"nightly\", \"num-bigint\", \"num-complex\", \"num-rational\", \"py-clone\", \"pyo3-macros\", \"rust_decimal\", \"serde\", \"smallvec\", \"unindent\"]","target":1859062398649441551,"profile":5688549466542000691,"path":8225971616635483577,"deps":[[46745629712228035,"pyo3_ffi",false,1411593254952839551],[557099714978251243,"build_script_build",false,4284845452606585356],[629381703529241162,"indoc",false,17486296508258565631],[3722963349756955755,"once_cell",false,15168598541345494942],[6110494908772664783,"pyo3_macros",false,11546741754502696276],[7843059260364151289,"cfg_if",false,12904594821397338204],[11887305395906501191,"libc",false,9439657505582787570],[14643204177830147187,"memoffset",false,5048725253622737706],[14748792705540276325,"unindent",false,10999516454298864323]],"local":[{"CheckDepInfo":{"dep_info":"release/.fingerprint/pyo3-fe834dd71f882076/dep-lib-pyo3","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}
1
+ {"rustc":9783247635632824192,"features":"[\"abi3\", \"abi3-py310\", \"abi3-py311\", \"abi3-py312\", \"abi3-py39\", \"default\", \"extension-module\", \"indoc\", \"macros\", \"pyo3-macros\", \"unindent\"]","declared_features":"[\"abi3\", \"abi3-py310\", \"abi3-py311\", \"abi3-py312\", \"abi3-py37\", \"abi3-py38\", \"abi3-py39\", \"anyhow\", \"auto-initialize\", \"chrono\", \"chrono-tz\", \"default\", \"either\", \"experimental-async\", \"experimental-inspect\", \"extension-module\", \"eyre\", \"full\", \"generate-import-lib\", \"gil-refs\", \"hashbrown\", \"indexmap\", \"indoc\", \"inventory\", \"macros\", \"multiple-pymethods\", \"nightly\", \"num-bigint\", \"num-complex\", \"num-rational\", \"py-clone\", \"pyo3-macros\", \"rust_decimal\", \"serde\", \"smallvec\", \"unindent\"]","target":1859062398649441551,"profile":5688549466542000691,"path":8225971616635483577,"deps":[[46745629712228035,"pyo3_ffi",false,13653332044949503379],[557099714978251243,"build_script_build",false,12909253021534973559],[629381703529241162,"indoc",false,17486296508258565631],[3722963349756955755,"once_cell",false,15168598541345494942],[6110494908772664783,"pyo3_macros",false,11129234612233501491],[7843059260364151289,"cfg_if",false,12904594821397338204],[11887305395906501191,"libc",false,9439657505582787570],[14643204177830147187,"memoffset",false,5048725253622737706],[14748792705540276325,"unindent",false,10999516454298864323]],"local":[{"CheckDepInfo":{"dep_info":"release/.fingerprint/pyo3-fe834dd71f882076/dep-lib-pyo3","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}
@@ -1 +1 @@
1
- {"rustc":9783247635632824192,"features":"[\"abi3\", \"abi3-py310\", \"abi3-py311\", \"abi3-py312\", \"abi3-py39\", \"default\", \"extension-module\"]","declared_features":"[\"abi3\", \"abi3-py310\", \"abi3-py311\", \"abi3-py312\", \"abi3-py37\", \"abi3-py38\", \"abi3-py39\", \"default\", \"extension-module\", \"generate-import-lib\"]","target":14506753996192664611,"profile":5688549466542000691,"path":7425364177248144962,"deps":[[46745629712228035,"build_script_build",false,1702343118843129758],[11887305395906501191,"libc",false,9439657505582787570]],"local":[{"CheckDepInfo":{"dep_info":"release/.fingerprint/pyo3-ffi-3b410603869916e1/dep-lib-pyo3_ffi","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}
1
+ {"rustc":9783247635632824192,"features":"[\"abi3\", \"abi3-py310\", \"abi3-py311\", \"abi3-py312\", \"abi3-py39\", \"default\", \"extension-module\"]","declared_features":"[\"abi3\", \"abi3-py310\", \"abi3-py311\", \"abi3-py312\", \"abi3-py37\", \"abi3-py38\", \"abi3-py39\", \"default\", \"extension-module\", \"generate-import-lib\"]","target":14506753996192664611,"profile":5688549466542000691,"path":7425364177248144962,"deps":[[46745629712228035,"build_script_build",false,14166274297650500490],[11887305395906501191,"libc",false,9439657505582787570]],"local":[{"CheckDepInfo":{"dep_info":"release/.fingerprint/pyo3-ffi-3b410603869916e1/dep-lib-pyo3_ffi","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}
@@ -1 +1 @@
1
- {"rustc":9783247635632824192,"features":"[\"abi3\", \"abi3-py310\", \"abi3-py311\", \"abi3-py312\", \"abi3-py39\", \"default\", \"extension-module\"]","declared_features":"[\"abi3\", \"abi3-py310\", \"abi3-py311\", \"abi3-py312\", \"abi3-py37\", \"abi3-py38\", \"abi3-py39\", \"default\", \"extension-module\", \"generate-import-lib\"]","target":5408242616063297496,"profile":2698605196217230458,"path":17664981266349336487,"deps":[[9343146279897821472,"pyo3_build_config",false,7690068936405649700]],"local":[{"CheckDepInfo":{"dep_info":"release/.fingerprint/pyo3-ffi-4b75fa99b2fd670d/dep-build-script-build-script-build","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}
1
+ {"rustc":9783247635632824192,"features":"[\"abi3\", \"abi3-py310\", \"abi3-py311\", \"abi3-py312\", \"abi3-py39\", \"default\", \"extension-module\"]","declared_features":"[\"abi3\", \"abi3-py310\", \"abi3-py311\", \"abi3-py312\", \"abi3-py37\", \"abi3-py38\", \"abi3-py39\", \"default\", \"extension-module\", \"generate-import-lib\"]","target":5408242616063297496,"profile":2698605196217230458,"path":17664981266349336487,"deps":[[9343146279897821472,"pyo3_build_config",false,57653756893044247]],"local":[{"CheckDepInfo":{"dep_info":"release/.fingerprint/pyo3-ffi-4b75fa99b2fd670d/dep-build-script-build-script-build","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}
@@ -0,0 +1 @@
1
+ {"rustc":9783247635632824192,"features":"","declared_features":"","target":0,"profile":0,"path":0,"deps":[[46745629712228035,"build_script_build",false,4924091817176615106]],"local":[{"RerunIfEnvChanged":{"var":"PYO3_CROSS","val":null}},{"RerunIfEnvChanged":{"var":"PYO3_CROSS_LIB_DIR","val":null}},{"RerunIfEnvChanged":{"var":"PYO3_CROSS_PYTHON_VERSION","val":null}},{"RerunIfEnvChanged":{"var":"PYO3_CROSS_PYTHON_IMPLEMENTATION","val":null}},{"RerunIfEnvChanged":{"var":"PYO3_PRINT_CONFIG","val":null}}],"rustflags":[],"config":0,"compile_kind":0}
@@ -0,0 +1 @@
1
+ {"rustc":9783247635632824192,"features":"[]","declared_features":"[\"experimental-async\", \"gil-refs\", \"multiple-pymethods\"]","target":13917622123232857288,"profile":2698605196217230458,"path":13433847673647424274,"deps":[[373107762698212489,"proc_macro2",false,3545127420592670417],[3771343242488894766,"pyo3_macros_backend",false,18393626628108567245],[17332570067994900305,"syn",false,13220154739366993597],[17990358020177143287,"quote",false,12101753900251786512]],"local":[{"CheckDepInfo":{"dep_info":"release/.fingerprint/pyo3-macros-039731653063c94a/dep-lib-pyo3_macros","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}
@@ -1 +1 @@
1
- {"rustc":9783247635632824192,"features":"","declared_features":"","target":0,"profile":0,"path":0,"deps":[[3771343242488894766,"build_script_build",false,17451506460545984774]],"local":[{"Precalculated":"0.22.6"}],"rustflags":[],"config":0,"compile_kind":0}
1
+ {"rustc":9783247635632824192,"features":"","declared_features":"","target":0,"profile":0,"path":0,"deps":[[3771343242488894766,"build_script_build",false,13056416227357979990]],"local":[{"Precalculated":"0.22.6"}],"rustflags":[],"config":0,"compile_kind":0}
@@ -0,0 +1 @@
1
+ {"rustc":9783247635632824192,"features":"[]","declared_features":"[\"experimental-async\", \"gil-refs\"]","target":5408242616063297496,"profile":2698605196217230458,"path":4854413530639178718,"deps":[[9343146279897821472,"pyo3_build_config",false,57653756893044247]],"local":[{"CheckDepInfo":{"dep_info":"release/.fingerprint/pyo3-macros-backend-a8e6c42699c75a62/dep-build-script-build-script-build","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}
@@ -0,0 +1 @@
1
+ {"rustc":9783247635632824192,"features":"[]","declared_features":"[\"experimental-async\", \"gil-refs\"]","target":1500063600279316151,"profile":2698605196217230458,"path":1863531318370697686,"deps":[[373107762698212489,"proc_macro2",false,3545127420592670417],[3771343242488894766,"build_script_build",false,2069911897588862848],[9343146279897821472,"pyo3_build_config",false,57653756893044247],[13077543566650298139,"heck",false,6485598308833149298],[17332570067994900305,"syn",false,13220154739366993597],[17990358020177143287,"quote",false,12101753900251786512]],"local":[{"CheckDepInfo":{"dep_info":"release/.fingerprint/pyo3-macros-backend-e9813c72593a8600/dep-lib-pyo3_macros_backend","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}
@@ -4,7 +4,7 @@ requires-python = ">=3.12"
4
4
 
5
5
  [[package]]
6
6
  name = "blindscrambler"
7
- version = "0.1.6"
7
+ version = "0.1.7"
8
8
  source = { editable = "." }
9
9
  dependencies = [
10
10
  { name = "matplotlib" },
@@ -13,6 +13,7 @@ dependencies = [
13
13
  { name = "scikit-learn" },
14
14
  { name = "scipy" },
15
15
  { name = "torch" },
16
+ { name = "torcheval" },
16
17
  { name = "twine" },
17
18
  ]
18
19
 
@@ -24,6 +25,7 @@ requires-dist = [
24
25
  { name = "scikit-learn", specifier = ">=1.7.2" },
25
26
  { name = "scipy", specifier = ">=1.16.2" },
26
27
  { name = "torch", specifier = ">=2.8.0" },
28
+ { name = "torcheval", specifier = ">=0.0.7" },
27
29
  { name = "twine", specifier = ">=6.1.0" },
28
30
  ]
29
31
 
@@ -1212,6 +1214,18 @@ wheels = [
1212
1214
  { url = "https://files.pythonhosted.org/packages/04/6e/650bb7f28f771af0cb791b02348db8b7f5f64f40f6829ee82aa6ce99aabe/torch-2.8.0-cp313-none-macosx_11_0_arm64.whl", hash = "sha256:7b677e17f5a3e69fdef7eb3b9da72622f8d322692930297e4ccb52fefc6c8211", size = 73632395, upload-time = "2025-08-06T14:55:28.645Z" },
1213
1215
  ]
1214
1216
 
1217
+ [[package]]
1218
+ name = "torcheval"
1219
+ version = "0.0.7"
1220
+ source = { registry = "https://pypi.org/simple" }
1221
+ dependencies = [
1222
+ { name = "typing-extensions" },
1223
+ ]
1224
+ sdist = { url = "https://files.pythonhosted.org/packages/f2/65/8f895a132d385c3bc60023a45501637aff63b98629cf45ce47a2035c0cc3/torcheval-0.0.7.tar.gz", hash = "sha256:a498dec34137bc66c9cf1adc7353a46c604dd62255884c72dcb4e2e4fc2cd7e9", size = 100912, upload-time = "2023-08-24T22:12:44.683Z" }
1225
+ wheels = [
1226
+ { url = "https://files.pythonhosted.org/packages/e4/de/e7abc784b00de9d05999657d29187f1f7a3406ed10ecaf164de06482608f/torcheval-0.0.7-py3-none-any.whl", hash = "sha256:20cc34dac7aa9b32f942c8a9f014d1d02098631b6cd0b102c078600577017956", size = 179200, upload-time = "2023-08-24T22:12:42.874Z" },
1227
+ ]
1228
+
1215
1229
  [[package]]
1216
1230
  name = "triton"
1217
1231
  version = "3.4.0"