enforce-rules 3.2.26__tar.gz → 3.2.28__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.
@@ -0,0 +1 @@
1
+ include requirements.txt
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: enforce-rules
3
- Version: 3.2.26
3
+ Version: 3.2.28
4
4
  Summary: Runtime rule validation for Python using dictionary-based constraints.
5
5
  Author: Jake Loepker, Microsoft Copilot (AI Assistant)
6
6
  License: BSD 3-Clause License
@@ -34,9 +34,11 @@ License: BSD 3-Clause License
34
34
 
35
35
  Project-URL: Homepage, https://github.com/Loepker-James/enforce-rules
36
36
  Project-URL: Issues, https://github.com/Loepker-James/enforce-rules/issues
37
+ Project-URL: Changelog, https://github.com/Loepker-James/enforce-rules/blob/main/CHANGELOG.md
37
38
  Project-URL: Copilot, https://copilot.microsoft.com
38
39
  Classifier: Development Status :: 5 - Production/Stable
39
40
  Classifier: Intended Audience :: Developers
41
+ Classifier: License :: OSI Approved
40
42
  Classifier: License :: OSI Approved :: BSD License
41
43
  Classifier: Programming Language :: Python
42
44
  Classifier: Programming Language :: Python :: 3
@@ -65,7 +67,7 @@ MAJOR: 3
65
67
 
66
68
  MINOR: 2
67
69
 
68
- PATCH: 26
70
+ PATCH: 28
69
71
 
70
72
  If you need to catch up, you can see the full version history in the [CHANGELOG](https://github.com/Loepker-James/enforce-rules/blob/main/CHANGELOG.md).
71
73
 
@@ -7,7 +7,7 @@ MAJOR: 3
7
7
 
8
8
  MINOR: 2
9
9
 
10
- PATCH: 26
10
+ PATCH: 28
11
11
 
12
12
  If you need to catch up, you can see the full version history in the [CHANGELOG](https://github.com/Loepker-James/enforce-rules/blob/main/CHANGELOG.md).
13
13
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "enforce-rules"
3
- version = "3.2.26"
3
+ version = "3.2.28"
4
4
  description = "Runtime rule validation for Python using dictionary-based constraints."
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.10"
@@ -17,6 +17,7 @@ authors = [
17
17
  classifiers = [
18
18
  "Development Status :: 5 - Production/Stable",
19
19
  "Intended Audience :: Developers",
20
+ "License :: OSI Approved",
20
21
  "License :: OSI Approved :: BSD License",
21
22
  "Programming Language :: Python",
22
23
  "Programming Language :: Python :: 3",
@@ -34,6 +35,7 @@ classifiers = [
34
35
  [project.urls]
35
36
  Homepage = "https://github.com/Loepker-James/enforce-rules"
36
37
  Issues = "https://github.com/Loepker-James/enforce-rules/issues"
38
+ Changelog = "https://github.com/Loepker-James/enforce-rules/blob/main/CHANGELOG.md"
37
39
  Copilot = "https://copilot.microsoft.com"
38
40
 
39
41
  [build-system]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: enforce-rules
3
- Version: 3.2.26
3
+ Version: 3.2.28
4
4
  Summary: Runtime rule validation for Python using dictionary-based constraints.
5
5
  Author: Jake Loepker, Microsoft Copilot (AI Assistant)
6
6
  License: BSD 3-Clause License
@@ -34,9 +34,11 @@ License: BSD 3-Clause License
34
34
 
35
35
  Project-URL: Homepage, https://github.com/Loepker-James/enforce-rules
36
36
  Project-URL: Issues, https://github.com/Loepker-James/enforce-rules/issues
37
+ Project-URL: Changelog, https://github.com/Loepker-James/enforce-rules/blob/main/CHANGELOG.md
37
38
  Project-URL: Copilot, https://copilot.microsoft.com
38
39
  Classifier: Development Status :: 5 - Production/Stable
39
40
  Classifier: Intended Audience :: Developers
41
+ Classifier: License :: OSI Approved
40
42
  Classifier: License :: OSI Approved :: BSD License
41
43
  Classifier: Programming Language :: Python
42
44
  Classifier: Programming Language :: Python :: 3
@@ -65,7 +67,7 @@ MAJOR: 3
65
67
 
66
68
  MINOR: 2
67
69
 
68
- PATCH: 26
70
+ PATCH: 28
69
71
 
70
72
  If you need to catch up, you can see the full version history in the [CHANGELOG](https://github.com/Loepker-James/enforce-rules/blob/main/CHANGELOG.md).
71
73
 
@@ -1,4 +1,3 @@
1
- CHANGELOG.md
2
1
  LICENSE
3
2
  MANIFEST.in
4
3
  README.md
@@ -1,708 +0,0 @@
1
- \## Changelog
2
-
3
- All notable changes to this project are documented in this file.
4
-
5
- This file should not be updated by contributors.
6
-
7
-
8
-
9
- For migration instructions, see \[MIGRATION](docs/migration.md).
10
-
11
-
12
-
13
- If you are upgrading, read the migration guide fully.
14
-
15
-
16
-
17
- \---
18
-
19
-
20
-
21
- \## 1.0.0 — Created on 2026‑08‑22
22
-
23
-
24
-
25
- \### Added
26
-
27
- \- validate() function
28
-
29
- \- Original keywords (see \[README](README.md))
30
-
31
-
32
-
33
- \### Documentation
34
-
35
- \- Added full keyword reference table to \[README](README.md)
36
-
37
- \- Clarified behavior of must\_be\_true
38
-
39
- \- Added examples for all keywords
40
-
41
- \- Updated installation instructions
42
-
43
- \- Added Versioning Policy section to \[README](README.md)
44
-
45
-
46
-
47
- \---
48
-
49
-
50
-
51
- \## 1.0.1 — Created on 2026‑08‑29
52
-
53
-
54
-
55
- \### Refactored
56
-
57
- \- Type hints now use object instead of Any
58
-
59
- \- Fixed inconsistency in \[README](README.md)
60
-
61
-
62
-
63
- \---
64
-
65
-
66
-
67
- \## 1.0.2 — Created on 2026‑08‑29
68
-
69
-
70
-
71
- \### Documentation
72
-
73
- \- Improved newline visibility for \[README on PyPI](pypi.org/project/enforce-rules)
74
-
75
-
76
-
77
- \---
78
-
79
-
80
-
81
- \## 1.0.3 — Created on 2026‑08‑29
82
-
83
-
84
-
85
- \### Fixed
86
-
87
- \- Version numbering in README
88
-
89
-
90
-
91
- \---
92
-
93
-
94
-
95
- \## 1.1.0 — Created on 2026‑08‑29
96
-
97
-
98
-
99
- \### Changed
100
-
101
- \- "regex" keyword now uses re.search instead of re.fullmatch
102
-
103
-
104
-
105
- \### Migration
106
-
107
- \- See:
108
-
109
-   - \[Guidelines For Upgrading To](docs/migration.md#upgrading-from-11--to-11)
110
-
111
-   - \[Guidelines For Downgrading From](docs/migration.md#downgrading-from-11-to-11-)
112
-
113
-
114
-
115
- \---
116
-
117
-
118
-
119
- \## 1.1.1 — Created on 2026‑08‑29
120
-
121
-
122
-
123
- \### Fixed
124
-
125
- \- Version numbering in \[README](README.md)
126
-
127
-
128
-
129
- \---
130
-
131
-
132
-
133
- \## 1.1.2 — Created on 2026‑08‑29
134
-
135
-
136
-
137
- \### Added
138
-
139
- \- Internal type hint for regex
140
-
141
-
142
-
143
- \---
144
-
145
-
146
-
147
- \## 1.1.3 — Created on 2026‑08‑29
148
-
149
-
150
-
151
- \### Documentation
152
-
153
- \- Made changelog visible on sources other than GitHub
154
-
155
-
156
-
157
- \---
158
-
159
-
160
-
161
- \## 1.1.4 — Created on 2026‑08‑30
162
-
163
-
164
-
165
- \### Documentation
166
-
167
- \- Improved newline visibility in README
168
-
169
-
170
-
171
- \---
172
-
173
-
174
-
175
- \## 2.0.0 — Created on 2026‑08‑30
176
-
177
-
178
-
179
- \### Added
180
-
181
- \- "before\_date"
182
-
183
- \- "after\_date"
184
-
185
-
186
-
187
-   (See \[Datetime Issue #6](https://github.com/Loepker-James/enforce-rules/issues/6))
188
-
189
-
190
-
191
- \---
192
-
193
-
194
-
195
- \## 2.0.1 — Created on 2026‑08‑30
196
-
197
-
198
-
199
- \### Fixed
200
-
201
- \- Bugs preventing "regex\_flags" from working
202
-
203
-   (Any version before this does not support "regex\_flags")
204
-
205
-
206
-
207
- \---
208
-
209
-
210
-
211
- \## 2.0.2 — Created on 2026‑08‑30
212
-
213
-
214
-
215
- \### Documentation
216
-
217
- \- Fixed README
218
-
219
-
220
-
221
- \---
222
-
223
-
224
-
225
- \## 2.0.3 — Created on 2026‑08‑30
226
-
227
-
228
-
229
- \### Refactored
230
-
231
- \- Improved internal type hints
232
-
233
-
234
-
235
- \---
236
-
237
-
238
-
239
- \## 2.0.4 — Created on 2026‑08‑30
240
-
241
-
242
-
243
- \### Fixed
244
-
245
- \- Version number in README
246
-
247
-
248
-
249
- \---
250
-
251
-
252
-
253
- \## 3.0.0 — Created on 2026‑08‑30
254
-
255
-
256
-
257
- \### Added
258
-
259
- \- New chess‑themed keywords (see Chess Issue #7)
260
-
261
-
262
-
263
- \### Documentation
264
-
265
- \- Improved type hints
266
-
267
-
268
-
269
- \---
270
-
271
-
272
-
273
- \## 3.0.1 — Created on 2026‑08‑30
274
-
275
-
276
-
277
- \### Fixed
278
-
279
- \- Updated \[README](README.md) to version 3.0.1
280
-
281
-
282
-
283
- \---
284
-
285
-
286
-
287
- \## 3.0.2 — Created on 2026‑08‑30
288
-
289
-
290
-
291
- \### Fixed
292
-
293
- \- README
294
-
295
-
296
-
297
- \---
298
-
299
-
300
-
301
- \## 3.1.0 — Created on 2026‑09‑02
302
-
303
-
304
-
305
- \### Added
306
-
307
- \- "is\_password" (see \[Password Issue #1](https://github.com/Loepker-James/enforce-rules/issues/1))
308
-
309
-
310
-
311
- \### Refactored
312
-
313
- \- Used collections.abc for certain type hints
314
-
315
-
316
-
317
- \---
318
-
319
-
320
-
321
- \## 3.1.1 — Created on 2026‑09‑04
322
-
323
-
324
-
325
- \### Fixed
326
-
327
- \- Bug in \[README](README.md)
328
-
329
-
330
-
331
- \---
332
-
333
-
334
-
335
- \## 3.1.2 — Created on 2026‑09‑04
336
-
337
-
338
-
339
- \### Documentation
340
-
341
- \- Fixed version number in \[README](README.md)
342
-
343
-
344
-
345
- \---
346
-
347
-
348
-
349
- \## 3.1.3 — Created on 2026‑09‑05
350
-
351
-
352
-
353
- \### Documentation
354
-
355
- \- Added links to docs/ in README
356
-
357
-
358
-
359
- \---
360
-
361
-
362
-
363
- \## 3.1.4 — Created on 2026‑09‑05
364
-
365
-
366
-
367
- \### Added
368
-
369
- \- Re‑added credits (accidentally removed in 3.1.1)
370
-
371
-
372
-
373
- \### Note
374
-
375
- \- Any \[README](README.md) in versions 3.1.1–3.1.4 (except 3.1.4) will not show credits.
376
-
377
-
378
-
379
- \---
380
-
381
-
382
-
383
- \## 3.1.5 — Created on 2026‑09‑07
384
-
385
- \*\*Note: This version is broken.\*\*
386
-
387
-
388
-
389
- \### Refactored
390
-
391
- \- Used typing.Final in validate() for type hinting
392
-
393
-
394
-
395
- \---
396
-
397
-
398
-
399
- \## 3.1.6 — Created on 2026‑09‑07
400
-
401
-
402
-
403
- \### Changed
404
-
405
- \- Replaced typing.Final with a comment
406
-
407
- \- Fixes broken 3.1.5
408
-
409
-
410
-
411
- \---
412
-
413
-
414
-
415
- \## 3.2.0 — Created on 2026‑09‑08
416
-
417
-
418
-
419
- \### Added
420
-
421
- \- is\_valid()
422
-
423
-
424
-
425
- \---
426
-
427
-
428
-
429
- \## 3.2.1 — Created on 2026‑09‑11
430
-
431
-
432
-
433
- \### Refactored
434
-
435
- \- Added internal type hint in validate()
436
-
437
-
438
-
439
- \---
440
-
441
-
442
-
443
- \## 3.2.2 — Created on 2026‑09‑11
444
-
445
-
446
-
447
- \### Refactored
448
-
449
- \- Added internal type hint in is\_valid()
450
-
451
-
452
-
453
- \---
454
-
455
-
456
-
457
- \## 3.2.3 — Created on 2026‑09‑12
458
-
459
-
460
-
461
- \### Refactored
462
-
463
- \- Refined type hints
464
-
465
-
466
-
467
- \---
468
-
469
-
470
-
471
- \## 3.2.4 — Created on 2026‑09‑12
472
-
473
-
474
-
475
- \### Refactored
476
-
477
- \- Used r"\\\\" instead of "\\\\\\\\"
478
-
479
-
480
-
481
- \---
482
-
483
-
484
-
485
- \## 3.2.5 — Created on 2026‑09‑12
486
-
487
-
488
-
489
- \### Documentation
490
-
491
- \- Added headers in \[README](README.md)
492
-
493
-
494
-
495
- \---
496
-
497
-
498
-
499
- \## 3.2.6 — Created on 2026‑09‑12
500
-
501
-
502
-
503
- \### Documentation
504
-
505
- \- Added header in \[README](README.md)
506
-
507
-
508
-
509
- \---
510
-
511
-
512
-
513
- \## 3.2.7 — Created on 2026‑09‑12
514
-
515
-
516
-
517
- \### Refactored
518
-
519
- \- Added internal type hint
520
-
521
-
522
-
523
- \---
524
-
525
-
526
-
527
- \## 3.2.8 — Created on 2026‑09‑13
528
-
529
-
530
-
531
- \### Refactored
532
-
533
- \- Added internal type hint
534
-
535
-
536
-
537
- \---
538
-
539
-
540
-
541
- \## 3.2.9 — Created on 2026‑09‑13
542
-
543
-
544
-
545
- \### Refactored
546
-
547
- \- Added internal type hint
548
-
549
-
550
-
551
- \---
552
-
553
-
554
-
555
- \## 3.2.10 — Created on 2026‑09‑25
556
-
557
-
558
-
559
- \### Fixed
560
-
561
- \- Raw string bug introduced in \[3.2.4](CHANGELOG.md#324--created-on-20260912)
562
-
563
-
564
-
565
- \---
566
-
567
-
568
-
569
- \## 3.2.11 — Created on 2026‑09‑26
570
-
571
-
572
-
573
- \### Added
574
-
575
- \- validate\_call decorator
576
-
577
-
578
-
579
- \---
580
-
581
-
582
-
583
- \## 3.2.12 — Created on 2026‑09‑27
584
-
585
-
586
-
587
- \### Refactored
588
-
589
- \- Used Field instead of PositiveInt for LengthType type hint
590
-
591
-
592
-
593
- \## 3.12.13 — Created on 2026-10-02
594
-
595
-
596
-
597
- \### Fixed
598
-
599
- \- Added requirements.txt in tarball (failed)
600
-
601
-
602
-
603
- \## 3.12.14 — Created on 2026-10-02
604
-
605
-
606
-
607
- \### Fixed
608
-
609
- \- Added dependencies in \[pyproject.toml](pyproject.toml)
610
-
611
-
612
-
613
- \## 3.12.15 — Created on 2026-10-02
614
-
615
- Nothing. I wanted to add something but it turns out I didn't add it.
616
-
617
-
618
-
619
- \## 3.12.16 — Created on 2026-10-03
620
-
621
-
622
-
623
- \### Added
624
-
625
- \- Claude in Credits
626
-
627
- \- Dependency Line In \[README](README.md)
628
-
629
-
630
-
631
- \## 3.2.17 — Created on 2026-10-03
632
-
633
- \### Added
634
-
635
- \- \[py.typed](src/enforce\_rules/py.typed)
636
-
637
-
638
-
639
- \## 3.2.18 — Created on 2026-10-03
640
-
641
- \### Fixed
642
-
643
- \- Required python version number in \[pyproject.toml](pyproject.toml)
644
-
645
-
646
-
647
- \## 3.2.19 — Created on 2026-10-03
648
-
649
- \### Fixed
650
-
651
- \- Issues that prevent Python 3.10 from working
652
-
653
-
654
-
655
- \### Changed
656
-
657
- \- Required python version number in \[pyproject.toml](pyproject.toml)
658
-
659
-
660
-
661
- \## 3.2.20 — Created on 2026-10-03
662
-
663
- \### Fixed
664
-
665
- \- \[Tests](tests/)
666
-
667
-
668
-
669
- \## 3.2.21 — Created on 2026-10-03
670
-
671
- \### Refactored
672
-
673
- \- Rewrote \_validate\_is\_password
674
-
675
-
676
-
677
- \## 3.2.22 — Created on 2026‑10-03
678
-
679
- \### Documentation
680
-
681
- \- Added header in \[README](README.md)
682
-
683
-
684
-
685
- \## 3.2.23 — Created on 2026‑10-04
686
-
687
- \### Added
688
-
689
- \- \\\_\\\_all\\\_\\\_
690
-
691
- \- .pyi files
692
-
693
-
694
-
695
- \## 3.2.24 — Created on 2026‑10-04
696
-
697
- \### Removed
698
-
699
- \- unused imports in .pyi files
700
-
701
-
702
-
703
- \## 3.2.25 — Created on 2026‑10-04
704
-
705
- \### Fixed
706
-
707
- \- added underscores in TypeVars in .pyi files
708
-
@@ -1,2 +0,0 @@
1
- include requirements.txt
2
- include CHANGELOG.md
File without changes
File without changes