14
14
FrozenSet ,
15
15
List ,
16
16
MutableSequence ,
17
+ MutableSet ,
17
18
Sequence ,
19
+ Set ,
18
20
Tuple ,
19
21
Type ,
20
22
TypeVar ,
@@ -100,13 +102,18 @@ def simple_typed_attrs(
100
102
| str_typed_attrs (defaults )
101
103
| float_typed_attrs (defaults )
102
104
| frozenset_typed_attrs (defaults , legacy_types_only = True )
105
+ | homo_tuple_typed_attrs (defaults , legacy_types_only = True )
103
106
)
104
107
if not for_frozen :
105
108
res = (
106
109
res
107
110
| dict_typed_attrs (defaults , allow_mutable_defaults )
108
- | mutable_seq_typed_attrs (defaults , allow_mutable_defaults )
109
- | seq_typed_attrs (defaults , allow_mutable_defaults )
111
+ | mutable_seq_typed_attrs (
112
+ defaults , allow_mutable_defaults , legacy_types_only = True
113
+ )
114
+ | seq_typed_attrs (
115
+ defaults , allow_mutable_defaults , legacy_types_only = True
116
+ )
110
117
| list_typed_attrs (
111
118
defaults , allow_mutable_defaults , legacy_types_only = True
112
119
)
@@ -349,7 +356,7 @@ def set_typed_attrs(
349
356
sampled_from (
350
357
[set , set [int ], AbcSet [int ], AbcMutableSet [int ]]
351
358
if not legacy_types_only
352
- else [set , AbcSet [int ], AbcMutableSet [int ]]
359
+ else [set , Set [int ], MutableSet [int ]]
353
360
)
354
361
)
355
362
return (attr .ib (type = type , default = default ), val_strat )
@@ -402,9 +409,9 @@ def list_typed_attrs(
402
409
attr .ib (
403
410
type = draw (
404
411
sampled_from (
405
- [List , List [float ], list ]
406
- if legacy_types_only
407
- else [list [ float ], list , List [float ], List ]
412
+ [list [ float ], list , List [float ], List ]
413
+ if not legacy_types_only
414
+ else [List , List [float ], list ]
408
415
)
409
416
),
410
417
default = default ,
@@ -414,10 +421,12 @@ def list_typed_attrs(
414
421
415
422
416
423
@composite
417
- def seq_typed_attrs (draw , defaults = None , allow_mutable_defaults = True ):
424
+ def seq_typed_attrs (
425
+ draw , defaults = None , allow_mutable_defaults = True , legacy_types_only = False
426
+ ):
418
427
"""
419
428
Generate a tuple of an attribute and a strategy that yields lists
420
- for that attribute. The lists contain floats .
429
+ for that attribute. The lists contain integers .
421
430
"""
422
431
default_val = attr .NOTHING
423
432
val_strat = lists (integers ())
@@ -432,17 +441,17 @@ def seq_typed_attrs(draw, defaults=None, allow_mutable_defaults=True):
432
441
433
442
return (
434
443
attr .ib (
435
- type = Sequence [int ]
436
- if not is_39_or_later or draw (booleans ())
437
- else AbcSequence [int ],
444
+ type = AbcSequence [int ] if not legacy_types_only else Sequence [int ],
438
445
default = default ,
439
446
),
440
447
val_strat ,
441
448
)
442
449
443
450
444
451
@composite
445
- def mutable_seq_typed_attrs (draw , defaults = None , allow_mutable_defaults = True ):
452
+ def mutable_seq_typed_attrs (
453
+ draw , defaults = None , allow_mutable_defaults = True , legacy_types_only = False
454
+ ):
446
455
"""
447
456
Generate a tuple of an attribute and a strategy that yields lists
448
457
for that attribute. The lists contain floats.
@@ -460,17 +469,17 @@ def mutable_seq_typed_attrs(draw, defaults=None, allow_mutable_defaults=True):
460
469
461
470
return (
462
471
attr .ib (
463
- type = MutableSequence [float ]
464
- if not is_39_or_later
465
- else AbcMutableSequence [float ],
472
+ type = AbcMutableSequence [float ]
473
+ if not legacy_types_only
474
+ else MutableSequence [float ],
466
475
default = default ,
467
476
),
468
477
val_strat ,
469
478
)
470
479
471
480
472
481
@composite
473
- def homo_tuple_typed_attrs (draw , defaults = None ):
482
+ def homo_tuple_typed_attrs (draw , defaults = None , legacy_types_only = False ):
474
483
"""
475
484
Generate a tuple of an attribute and a strategy that yields homogenous
476
485
tuples for that attribute. The tuples contain strings.
@@ -481,7 +490,13 @@ def homo_tuple_typed_attrs(draw, defaults=None):
481
490
default = draw (val_strat )
482
491
return (
483
492
attr .ib (
484
- type = tuple [str , ...] if draw (booleans ()) else Tuple [str , ...],
493
+ type = draw (
494
+ sampled_from (
495
+ [tuple [str , ...], tuple , Tuple , Tuple [str , ...]]
496
+ if not legacy_types_only
497
+ else [tuple , Tuple , Tuple [str , ...]]
498
+ )
499
+ ),
485
500
default = default ,
486
501
),
487
502
val_strat ,
0 commit comments