ANYsolver 0.1.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. anysolver/__init__.py +631 -0
  2. anysolver/anystructure_fem_mode.py +942 -0
  3. anysolver/arc_length.py +758 -0
  4. anysolver/assembly.py +950 -0
  5. anysolver/baselines.py +303 -0
  6. anysolver/beam_shell_verification.py +4276 -0
  7. anysolver/beam_validity.py +110 -0
  8. anysolver/benchmarks.py +495 -0
  9. anysolver/boundary.py +476 -0
  10. anysolver/buckling.py +442 -0
  11. anysolver/buckling_validity.py +91 -0
  12. anysolver/capacity_workflow.py +350 -0
  13. anysolver/cases.py +173 -0
  14. anysolver/composite_strip_verification.py +297 -0
  15. anysolver/contact.py +3461 -0
  16. anysolver/corotational.py +371 -0
  17. anysolver/cylinder_benchmarks.py +364 -0
  18. anysolver/dynamics.py +723 -0
  19. anysolver/element_qualification.py +432 -0
  20. anysolver/elements.py +2724 -0
  21. anysolver/external_references.py +369 -0
  22. anysolver/fe_core.py +327 -0
  23. anysolver/fracture.py +551 -0
  24. anysolver/imperfections.py +390 -0
  25. anysolver/jit_compiler.py +108 -0
  26. anysolver/kernel_warmup.py +180 -0
  27. anysolver/linalg.py +760 -0
  28. anysolver/mass_properties.py +179 -0
  29. anysolver/material_curves.py +231 -0
  30. anysolver/matrix_assembly.py +558 -0
  31. anysolver/mesh_gen.py +1065 -0
  32. anysolver/mesh_load_bc_verification.py +609 -0
  33. anysolver/modal.py +282 -0
  34. anysolver/nonlinear.py +300 -0
  35. anysolver/nonlinear_performance.py +920 -0
  36. anysolver/nonlinear_performance_batch_b.py +592 -0
  37. anysolver/nonlinear_performance_batch_c.py +506 -0
  38. anysolver/nonlinear_performance_bootstrap.py +120 -0
  39. anysolver/nonlinear_reduced_assembly.py +760 -0
  40. anysolver/nonlinear_static.py +1518 -0
  41. anysolver/plasticity.py +419 -0
  42. anysolver/plasticity_qualification.py +314 -0
  43. anysolver/production_readiness.py +304 -0
  44. anysolver/quality_control.py +1497 -0
  45. anysolver/recovery.py +505 -0
  46. anysolver/recovery_policy.py +205 -0
  47. anysolver/reference_cases.py +425 -0
  48. anysolver/results.py +503 -0
  49. anysolver/runtime.py +9030 -0
  50. anysolver/s4_validity.py +326 -0
  51. anysolver/sesam_fem/__init__.py +55 -0
  52. anysolver/sesam_fem/__main__.py +80 -0
  53. anysolver/sesam_fem/diagnostics.py +65 -0
  54. anysolver/sesam_fem/document.py +814 -0
  55. anysolver/sesam_fem/exporter.py +84 -0
  56. anysolver/sesam_fem/importer.py +365 -0
  57. anysolver/sesam_fem/records.py +257 -0
  58. anysolver/sesam_fem/schema.py +107 -0
  59. anysolver/sesam_fem/sif_importer.py +397 -0
  60. anysolver/sesam_fem/validation.py +62 -0
  61. anysolver/shell_benchmarks.py +367 -0
  62. anysolver/test_cases.py +610 -0
  63. anysolver/validation.py +416 -0
  64. anysolver/vectorized_nonlinear.py +334 -0
  65. anysolver/vectorized_stiffness.py +571 -0
  66. anysolver-0.1.0.dist-info/METADATA +165 -0
  67. anysolver-0.1.0.dist-info/RECORD +70 -0
  68. anysolver-0.1.0.dist-info/WHEEL +5 -0
  69. anysolver-0.1.0.dist-info/licenses/LICENSE +674 -0
  70. anysolver-0.1.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,165 @@
1
+ Metadata-Version: 2.4
2
+ Name: ANYsolver
3
+ Version: 0.1.0
4
+ Summary: Qualified beam and shell finite-element solver
5
+ Author-email: Audun Arnesen Nyhus <audunarn@gmail.com>
6
+ License-Expression: GPL-3.0-or-later
7
+ Project-URL: Homepage, https://github.com/audunarn/ANYsolver
8
+ Project-URL: Repository, https://github.com/audunarn/ANYsolver
9
+ Project-URL: Issues, https://github.com/audunarn/ANYsolver/issues
10
+ Classifier: Development Status :: 4 - Beta
11
+ Classifier: Intended Audience :: Science/Research
12
+ Classifier: Programming Language :: Python :: 3
13
+ Classifier: Programming Language :: Python :: 3.11
14
+ Classifier: Programming Language :: Python :: 3.12
15
+ Classifier: Programming Language :: Python :: 3.13
16
+ Classifier: Programming Language :: Python :: 3.14
17
+ Classifier: Topic :: Scientific/Engineering
18
+ Requires-Python: >=3.11
19
+ Description-Content-Type: text/markdown
20
+ License-File: LICENSE
21
+ Requires-Dist: numpy>=1.26
22
+ Requires-Dist: scipy>=1.11
23
+ Provides-Extra: numba
24
+ Requires-Dist: numba>=0.59; extra == "numba"
25
+ Provides-Extra: pardiso
26
+ Requires-Dist: pypardiso>=0.4; extra == "pardiso"
27
+ Provides-Extra: accelerated
28
+ Requires-Dist: numba>=0.59; extra == "accelerated"
29
+ Requires-Dist: pypardiso>=0.4; extra == "accelerated"
30
+ Provides-Extra: dev
31
+ Requires-Dist: build>=1.2; extra == "dev"
32
+ Requires-Dist: pytest>=8; extra == "dev"
33
+ Requires-Dist: twine>=5; extra == "dev"
34
+ Dynamic: license-file
35
+
36
+ # ANYsolver finite-element solver
37
+
38
+ `anysolver` is a headless structural FE solver for beam,
39
+ shell, stiffened-panel, and cylindrical-shell analysis. It is an engineering
40
+ solver with an explicit qualification scope, not a general-purpose CAD,
41
+ contact, or fracture platform.
42
+
43
+ Install the released package with:
44
+
45
+ ```powershell
46
+ python -m pip install ANYsolver
47
+ ```
48
+
49
+ For coordinated local development with ANYstructure:
50
+
51
+ ```powershell
52
+ python -m pip install -e C:\Github\ANYsolver
53
+ ```
54
+
55
+ Core analyses and the solver-owned generated-geometry workflow are available
56
+ directly from `anysolver`; the lightweight normalized flat-panel and cylinder
57
+ facade is exposed through `anysolver.runtime`:
58
+
59
+ ```python
60
+ from anysolver import (
61
+ FEModel,
62
+ GeneratedGeometryFEMConfig,
63
+ LoadCase,
64
+ run_generated_geometry_fem,
65
+ solve_linear,
66
+ )
67
+ from anysolver.runtime import LightweightFEMConfig, run_production_fem
68
+ ```
69
+
70
+ The generic `GeneratedGeometryFEM*` names are the preferred workflow API.
71
+ Historical `AnyStructureFEM*` aliases remain available only for downstream
72
+ compatibility. Material selection is centralized in
73
+ `dnv_c208_steel_properties()` and `dnv_c208_steel_curve()`; the runtime facade
74
+ uses the same canonical table and validation.
75
+
76
+ The source code and tests are authoritative. Generated reports under
77
+ `reports/` are dated evidence snapshots and must be regenerated after solver
78
+ changes before making release claims.
79
+
80
+ ## Functional overview
81
+
82
+ | Area | Implemented functionality |
83
+ | --- | --- |
84
+ | Model | Six DOFs per node; SI units; materials, density, nodal mass, shell/beam topology, supports, and MPC constraints. |
85
+ | Shells | 3- and 6-node triangles; 4-node MITC-style and 8-node Mindlin-Reissner quadrilaterals; stiffness, mass, pressure, geometric stiffness, and stress recovery. Q8R reduced integration is experimental and outside the qualified thin-bending/nonlinear-batch scope. |
86
+ | Beams | 2-node and straight-sided 3-node Timoshenko beams with axial, biaxial bending, shear, torsion, consistent/lumped mass options, geometric stiffness, and optional fiber-section plasticity. |
87
+ | Coupling | Coincident or eccentric beam-shell kinematics through explicit interpolated MPC transformations. |
88
+ | Loads | Nodal force/moment, shell pressure, in-plane edge loads, acceleration/gravity, prescribed displacement, load combinations, proportional and staged nonlinear loads. |
89
+ | Linear analysis | Static single- and multiple-RHS solves, reactions and MPC-force diagnostics, free-free rigid-body nullspace handling, and sparse factorization reuse. |
90
+ | Modal and mass | Consistent mass assembly, point masses, model mass/inertia properties, constrained and free-free vibration modes. |
91
+ | Buckling | Linear eigenvalue buckling for beam axial force and shell membrane-resultant prestress, including sparse shift-invert and repeated-mode diagnostics. |
92
+ | Nonlinear static | Incremental Newton solution, adaptive stepping, force or displacement control, von Karman or opt-in corotational kinematics, layered shell J2 plasticity, beam fiber plasticity, staged loads, and simplified element erosion. |
93
+ | Continuation | Bounded Crisfield-style spherical arc-length tracing through a first limit point and a guarded descending branch. |
94
+ | Dynamics | Newmark or HHT-alpha implicit transient response, Rayleigh damping, prescribed shell pressure patches, selected/envelope history storage, and memory preflight. |
95
+ | Impact/contact | One rigid sphere with frictionless penalty contact against shells and opt-in beam-axis segments; event substepping, Aitken relaxation, nonlinear material response, and engineering damage/erosion options. |
96
+ | Imperfections | Stress-free eigenmode, member-bow, plate-wave, flange-twist, explicit, and composite imperfection fields. |
97
+ | Workflows | Normalized generated geometry to static/prestress/buckling; traceable static-to-buckling-to-imperfect nonlinear-capacity workflow. |
98
+ | Interchange | Pure-Python SESAM formatted FEM record/document parsing, guarded round-trip writing, supported semantic import to `FEModel`, coordinate transforms, beam orientation, and SIF shell-stress reading by load case. |
99
+ | Results | Result provenance, element and nodal stress recovery, selected recovery, reaction filtering, validation diagnostics, deterministic baselines, benchmarks, and generated qualification reports. |
100
+
101
+ Implemented does not automatically mean qualified for every geometry or load
102
+ regime. The live capability matrix is produced by
103
+ `write_production_readiness_artifacts()` and the verification manifest.
104
+
105
+ ## Production scope
106
+
107
+ The qualified target is thin flat or cylindrical shell structure, with beam
108
+ stiffeners/girders represented through the documented coupling, inside the
109
+ verified mesh, material, distortion, eccentricity, and load ranges.
110
+
111
+ Important limits:
112
+
113
+ - no arbitrary CAD topology or automatic general-purpose meshing;
114
+ - Q8R is experimental: its hourglass stabilization is not qualified for thin
115
+ bending and it is deliberately excluded from nonlinear batch acceleration;
116
+ - the 3-node quadratic beam is straight-sided; curved members must be
117
+ represented by straight beam segments until a true curved formulation is
118
+ implemented;
119
+ - shell buckling uses the implemented membrane-resultant geometric stiffness,
120
+ not a complete finite-rotation shell geometric stiffness;
121
+ - no follower-pressure load or tangent;
122
+ - no general shell-shell, body-body, frictional, rolling, or self-contact;
123
+ - no fluid-structure interaction, cavitation, or water-entry model;
124
+ - no cohesive cracks, remeshing, material separation, or fracture-mechanics
125
+ claim—the erosion models are engineering screens;
126
+ - no unrestricted deep post-buckling or automatic bifurcation branch switching;
127
+ - no consistent frame-derivative tangent for the corotational formulation;
128
+ - no general material-aware stress reconstruction when committed nonlinear
129
+ layer/fiber state is unavailable;
130
+ - no true multi-stage plastic preload followed by displacement control;
131
+ - no unverified material laws, residual-stress fields, or distortion ranges;
132
+ - SESAM `FEModel` export and external-solver execution/comparison remain outside
133
+ the supported interchange gate.
134
+
135
+ Use `validate_production_model()`, the analysis-specific preflight checks, and
136
+ the generated production-scope artifacts before production use.
137
+
138
+ ## Documentation map
139
+
140
+ - [`ARCHITECTURE.md`](docs/ARCHITECTURE.md): package boundaries, analysis flow, and
141
+ invariants.
142
+ - [`THEORY.md`](docs/THEORY.md): implemented formulations and validity limits.
143
+ - [`ARC_LENGTH.md`](docs/ARC_LENGTH.md): continuation controls and use.
144
+ - [`NONLINEAR_PERFORMANCE.md`](docs/NONLINEAR_PERFORMANCE.md): nonlinear assembly,
145
+ sparse backend, threading, and diagnostics.
146
+ - [`QUALITY_CONTROL.md`](docs/QUALITY_CONTROL.md): verification commands, evidence
147
+ hierarchy, and current checked status.
148
+ - [`reference_cases/README.md`](docs/reference_cases/README.md):
149
+ local CalculiX/PrePoMax reference-case layout.
150
+ - [`MIGRATION.md`](MIGRATION.md): source provenance, inclusion boundary, and
151
+ import changes.
152
+
153
+ ## Basic verification
154
+
155
+ From the repository root:
156
+
157
+ ```powershell
158
+ python -m pytest tests -q -p no:cacheprovider
159
+ python run_qc.py --no-save
160
+ python scripts/run_fe_verification.py
161
+ ```
162
+
163
+ The last command regenerates the canonical JSON and Markdown evidence under
164
+ `reports/verification/`. External-reference decks are handoff artifacts unless
165
+ matching external-solver results have actually been executed and compared.
@@ -0,0 +1,70 @@
1
+ anysolver/__init__.py,sha256=jwGYL5d1nYuq0LZCkCt0QgLN3vq3lakgWWE1xZG1ag0,19301
2
+ anysolver/anystructure_fem_mode.py,sha256=yEQdGqs5EsaTs8-Ih11hKtUDbbHruYo9vIo6YgeyNIk,41243
3
+ anysolver/arc_length.py,sha256=sAFqiIxkvCJCQzZ_3bzgl-MyEU9S5SSEoLv5s8fJkA4,33053
4
+ anysolver/assembly.py,sha256=TiAKGU9LYBwsfJubnWi6YWDaXyPR9wY-zSawszhWbqA,41036
5
+ anysolver/baselines.py,sha256=Mn54W32CXeht7WjQ6H7_2CewcSEo_95zfn2DKfa4Dzc,13108
6
+ anysolver/beam_shell_verification.py,sha256=YcD1OmhP4hsWXV5I3dLu2YwJ7kc7VJXAFxI2k-4W-q0,208659
7
+ anysolver/beam_validity.py,sha256=oX6Fe5Eb6S3q-sQZk2fm1d5Ry_n7Z0iacohGpXKScL0,4557
8
+ anysolver/benchmarks.py,sha256=efbowKJioIPiRFgzxaXG47mW2wUOe8d8nBYHRa8zgXg,21752
9
+ anysolver/boundary.py,sha256=Zku_eAwdXSzVzRhaCpS0f1obvAS2zC47zm3FBcO3qBE,18591
10
+ anysolver/buckling.py,sha256=Dy5I1FsRHZf3dbjy-MrIhw04u1mbaFZWkIoRGfnIyLc,19305
11
+ anysolver/buckling_validity.py,sha256=9mSwC2js1RpPPeMazT9B1zQvwKGG7bAhqi2MD4BTOcU,4426
12
+ anysolver/capacity_workflow.py,sha256=4vaN6Bc46T6YfHMXPFpScMhKbyLTS6bXzGNCJ0mmNQA,14412
13
+ anysolver/cases.py,sha256=_vYL0anGGYkTo8GujC8U0pnI4Vt5xE7fJxjFa3pw3ig,6741
14
+ anysolver/composite_strip_verification.py,sha256=qRepkFuD1SsvlbG2O7nXRsDyw7B-uu2lYfsggwlqZuo,12327
15
+ anysolver/contact.py,sha256=EkEA_bsnJXAIr7TJIL0M0k5K8pWH5MDlQ-CaRBWSlzs,175614
16
+ anysolver/corotational.py,sha256=a7gjbN1EYirpaaiqgqSoezuCAjqpsyFVwR0dtsFSNRA,16279
17
+ anysolver/cylinder_benchmarks.py,sha256=Lc0SD7CdgoC2cjRmEVvTng_5CKlpbuKI1S9PX1YRfFE,14312
18
+ anysolver/dynamics.py,sha256=uxk4CIttdhFmdc-afwnl5vQ_b79b2nwtKAW-xh6hvhs,32669
19
+ anysolver/element_qualification.py,sha256=H0RiwHpoDAkgN0BkmIWOHdJqwgZYHjZ4IQqGgaFIunE,19607
20
+ anysolver/elements.py,sha256=O_U2bBIrR8rGlewMSmtkws7zwpLcMWv0rR4APtlN7Eg,115040
21
+ anysolver/external_references.py,sha256=k4S7NJMYQKFgFuml05zGOeI6FgFhpPKydOVgEnaQXeg,15205
22
+ anysolver/fe_core.py,sha256=1lCQZeO1BuLj8vVtI2Fbf0BSBddq0RKmsvleBNbjoF4,12251
23
+ anysolver/fracture.py,sha256=58HKRaTNEPe8DSBI9NU4ldvXeuSG-5S9RKDu4xitzmw,25674
24
+ anysolver/imperfections.py,sha256=1H9eT5u679PxyB-wFhrf7VNxCdMYKMrYoCEM5ApxqV8,15653
25
+ anysolver/jit_compiler.py,sha256=Gjo99gGe7IXFXXm4PPmYDGj338X3xzHC7BhpXtqzClA,3499
26
+ anysolver/kernel_warmup.py,sha256=Ld5a4MBYley1XtLk41EAwfuDyLY5S60wH6d-t6h13Sc,6781
27
+ anysolver/linalg.py,sha256=Xp0BKYkl7iRT2_xYgJFEHOXpaTzATlQBW5dxb0sFDQk,29566
28
+ anysolver/mass_properties.py,sha256=JkXCSYz6hu85hC2elBJiuU88AmKUSQkPw7nn0wxJWwU,7505
29
+ anysolver/material_curves.py,sha256=2wEyVCEcEzZYdxKlNUnZU_CbEINk5shREWYANfyOIDw,10806
30
+ anysolver/matrix_assembly.py,sha256=OCZMVVrsvHyYEx7XjuJsqTmKQw1udrFSKoeMKZNH4bQ,22231
31
+ anysolver/mesh_gen.py,sha256=Hw1SKIwUxXeGQbskMcNW8Mos8vOyf90hX596Lj4PAho,43667
32
+ anysolver/mesh_load_bc_verification.py,sha256=aNfAEssDS31IoX6Ll-PHr7q44grSieVcgiGGds1Ge7g,27138
33
+ anysolver/modal.py,sha256=hrG_mygB_M5CHydfYDWhxuU5JS-Q5pjldf3pOj1mcZQ,11164
34
+ anysolver/nonlinear.py,sha256=HGuwQCXKdE_16MM9yixBXbGThukWr1stYOll95FCuXc,11528
35
+ anysolver/nonlinear_performance.py,sha256=OcCdm9wYXYxKszKICJPaC1E0QXAkUQd8HPuUiSlHJKc,38690
36
+ anysolver/nonlinear_performance_batch_b.py,sha256=WPIbeyoEypO_0j9zyW23MlFNdkO0FaWl9pJjZv0-cPg,24397
37
+ anysolver/nonlinear_performance_batch_c.py,sha256=XEi4--7ptdihwDet_Z5Qxr7c9m6R9bmQyFSv43XSyr8,17337
38
+ anysolver/nonlinear_performance_bootstrap.py,sha256=EUgS2LYkH3XxuOzhXKEx9qpQkU1I0Iy1Rfz9tlCad3U,5007
39
+ anysolver/nonlinear_reduced_assembly.py,sha256=MX7p7uD-Y9px4CRV2B1DJ5Jxe9BRtJwNBaiOmX_KEfo,30777
40
+ anysolver/nonlinear_static.py,sha256=9_ktn0fl8Llwve3KbpDD8TR4dwTPIbr8pmSlkabZBKA,69333
41
+ anysolver/plasticity.py,sha256=SnLHJO0OibfuBSpfObCtkchzVguXXNQEkr90gi3hvcY,13952
42
+ anysolver/plasticity_qualification.py,sha256=vcEun_qPxqV9h6ugvtfSZBBV6hcmL3Jz-0qSjcgsCPI,13225
43
+ anysolver/production_readiness.py,sha256=wn-xDOwouZq7NFF7ChlWULSEu_I5PXyXlFVmQWZizAc,14327
44
+ anysolver/quality_control.py,sha256=-xPlfudjyfAy4nXfhdnbk0YLgsawY7zpAaug2mUyYuA,52048
45
+ anysolver/recovery.py,sha256=Eaygy5avZnyz0Z_ptOFQOngGdLt1iU5SAwq2f9VqG0I,20423
46
+ anysolver/recovery_policy.py,sha256=tGP3Po7u973KuR-lecRBY55sPn1_nzrhFfdm7L1YWQU,9053
47
+ anysolver/reference_cases.py,sha256=TiqlvowPqDvT0H6tWaqycfWmUMvwgHGLMf4RpNOLU4Q,16884
48
+ anysolver/results.py,sha256=aBb-FtYxc2SVS8BduHX70CmS3Xi5mQjWwbR6z7WgXiA,19390
49
+ anysolver/runtime.py,sha256=erG4omsvYqmRjHpIqAxLEktVxQNPZBnS5TP_Lt655RY,421480
50
+ anysolver/s4_validity.py,sha256=RkNMlQTellzNBLbuOzUyp0MeU6QMxpN9HPVmrJmZxDo,14827
51
+ anysolver/shell_benchmarks.py,sha256=W4xVKM2elholuk9hyyc4CvHFK4OO_ORSwfdNxTppU0U,15107
52
+ anysolver/test_cases.py,sha256=99CHhqIcbHeX47O5Qzt4ZKiANsUp9UaWyHGuGY3Gj8g,21549
53
+ anysolver/validation.py,sha256=WAXRgvDFnlzPWGOifmr4TfMFKNKu__dqyQKU70jZvZQ,19875
54
+ anysolver/vectorized_nonlinear.py,sha256=fL9CHglvh7QLthVoy-w9__ywxnhzHHF0Rs1wF_l3F54,11689
55
+ anysolver/vectorized_stiffness.py,sha256=BD64jHYbM5XCYbHwuf29X3A6t_zCzBpBIn3zB9YFS2g,20133
56
+ anysolver/sesam_fem/__init__.py,sha256=tJy4xMgvSOk7x1THr1iPtFYNBcBWTXJ1Em8aWGI9YP4,1540
57
+ anysolver/sesam_fem/__main__.py,sha256=Ya-IE8IPRuC6GVVw9toyI4EubdaG-o1dFYCH_XUHkgY,3543
58
+ anysolver/sesam_fem/diagnostics.py,sha256=iKwxX2fExjoA04vD09U8fsAbzNdiYwWGxGt_DdTpc58,2073
59
+ anysolver/sesam_fem/document.py,sha256=Os3GxPVZ_se_-Bo9Uw1sXgHlXttxeqZP5tCgRNNNQGc,32846
60
+ anysolver/sesam_fem/exporter.py,sha256=b5JHrqERnYzdXzIa3zmAMpXv_fLBzeLHqj4qiVT7imY,2826
61
+ anysolver/sesam_fem/importer.py,sha256=go37J_9XuhCyVTe-1K3HOe2vKpH1DhV8jAGkChCveNo,14752
62
+ anysolver/sesam_fem/records.py,sha256=DZdF9v_5WFGCuWO7kX1KCPYagS1Wcm1XojL7_jRGl9M,9400
63
+ anysolver/sesam_fem/schema.py,sha256=6lmA3bik80vqmOVfB_y_C9ybQkiUcJMEM1nN-JZUGWY,3320
64
+ anysolver/sesam_fem/sif_importer.py,sha256=-y-4Gu8OoIdYFFSGDpMtalFjNI2MaqPvfKtzMZb2K3E,15527
65
+ anysolver/sesam_fem/validation.py,sha256=3B2lHEqeMlBt9rLgW4boUSnGyrvLhwIc4ih-4cGo73o,2727
66
+ anysolver-0.1.0.dist-info/licenses/LICENSE,sha256=IwGE9guuL-ryRPEKi6wFPI_zOhg7zDZbTYuHbSt_SAk,35823
67
+ anysolver-0.1.0.dist-info/METADATA,sha256=jkmaaJgAdNUNtrzKpCROZ73SZ30GMSir51GJIhhSBBo,8963
68
+ anysolver-0.1.0.dist-info/WHEEL,sha256=K260EYznzXsJYBQGqmI8VTxEdiZYNvDZwW9cBh9-_MA,91
69
+ anysolver-0.1.0.dist-info/top_level.txt,sha256=vXAxxTTZ5CPZvl07-Kh2ieTLtbBw25IO-_G6bFUKfT0,10
70
+ anysolver-0.1.0.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (83.0.0)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+