flamapy-fm 2.0.0.dev4__tar.gz → 2.0.0.dev6__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 (38) hide show
  1. {flamapy-fm-2.0.0.dev4 → flamapy-fm-2.0.0.dev6}/PKG-INFO +1 -1
  2. {flamapy-fm-2.0.0.dev4 → flamapy-fm-2.0.0.dev6}/flamapy/metamodels/fm_metamodel/models/feature_model.py +3 -0
  3. {flamapy-fm-2.0.0.dev4 → flamapy-fm-2.0.0.dev6}/flamapy/metamodels/fm_metamodel/operations/fm_metrics.py +71 -1
  4. {flamapy-fm-2.0.0.dev4 → flamapy-fm-2.0.0.dev6}/flamapy_fm.egg-info/PKG-INFO +1 -1
  5. {flamapy-fm-2.0.0.dev4 → flamapy-fm-2.0.0.dev6}/flamapy_fm.egg-info/requires.txt +1 -1
  6. {flamapy-fm-2.0.0.dev4 → flamapy-fm-2.0.0.dev6}/setup.py +1 -1
  7. {flamapy-fm-2.0.0.dev4 → flamapy-fm-2.0.0.dev6}/README.md +0 -0
  8. {flamapy-fm-2.0.0.dev4 → flamapy-fm-2.0.0.dev6}/flamapy/metamodels/fm_metamodel/__init__.py +0 -0
  9. {flamapy-fm-2.0.0.dev4 → flamapy-fm-2.0.0.dev6}/flamapy/metamodels/fm_metamodel/models/__init__.py +0 -0
  10. {flamapy-fm-2.0.0.dev4 → flamapy-fm-2.0.0.dev6}/flamapy/metamodels/fm_metamodel/operations/__init__.py +0 -0
  11. {flamapy-fm-2.0.0.dev4 → flamapy-fm-2.0.0.dev6}/flamapy/metamodels/fm_metamodel/operations/fm_atomic_sets.py +0 -0
  12. {flamapy-fm-2.0.0.dev4 → flamapy-fm-2.0.0.dev6}/flamapy/metamodels/fm_metamodel/operations/fm_average_branching_factor.py +0 -0
  13. {flamapy-fm-2.0.0.dev4 → flamapy-fm-2.0.0.dev6}/flamapy/metamodels/fm_metamodel/operations/fm_core_features.py +0 -0
  14. {flamapy-fm-2.0.0.dev4 → flamapy-fm-2.0.0.dev6}/flamapy/metamodels/fm_metamodel/operations/fm_count_leafs.py +0 -0
  15. {flamapy-fm-2.0.0.dev4 → flamapy-fm-2.0.0.dev6}/flamapy/metamodels/fm_metamodel/operations/fm_estimated_configurations_number.py +0 -0
  16. {flamapy-fm-2.0.0.dev4 → flamapy-fm-2.0.0.dev6}/flamapy/metamodels/fm_metamodel/operations/fm_feature_ancestors.py +0 -0
  17. {flamapy-fm-2.0.0.dev4 → flamapy-fm-2.0.0.dev6}/flamapy/metamodels/fm_metamodel/operations/fm_generate_random_attribute.py +0 -0
  18. {flamapy-fm-2.0.0.dev4 → flamapy-fm-2.0.0.dev6}/flamapy/metamodels/fm_metamodel/operations/fm_leaf_features.py +0 -0
  19. {flamapy-fm-2.0.0.dev4 → flamapy-fm-2.0.0.dev6}/flamapy/metamodels/fm_metamodel/operations/fm_max_depth_tree.py +0 -0
  20. {flamapy-fm-2.0.0.dev4 → flamapy-fm-2.0.0.dev6}/flamapy/metamodels/fm_metamodel/transformations/__init__.py +0 -0
  21. {flamapy-fm-2.0.0.dev4 → flamapy-fm-2.0.0.dev6}/flamapy/metamodels/fm_metamodel/transformations/afm_reader.py +0 -0
  22. {flamapy-fm-2.0.0.dev4 → flamapy-fm-2.0.0.dev6}/flamapy/metamodels/fm_metamodel/transformations/afm_writer.py +0 -0
  23. {flamapy-fm-2.0.0.dev4 → flamapy-fm-2.0.0.dev6}/flamapy/metamodels/fm_metamodel/transformations/clafer_writer.py +0 -0
  24. {flamapy-fm-2.0.0.dev4 → flamapy-fm-2.0.0.dev6}/flamapy/metamodels/fm_metamodel/transformations/featureide_reader.py +0 -0
  25. {flamapy-fm-2.0.0.dev4 → flamapy-fm-2.0.0.dev6}/flamapy/metamodels/fm_metamodel/transformations/featureide_writer.py +0 -0
  26. {flamapy-fm-2.0.0.dev4 → flamapy-fm-2.0.0.dev6}/flamapy/metamodels/fm_metamodel/transformations/glencoe_reader.py +0 -0
  27. {flamapy-fm-2.0.0.dev4 → flamapy-fm-2.0.0.dev6}/flamapy/metamodels/fm_metamodel/transformations/glencoe_writer.py +0 -0
  28. {flamapy-fm-2.0.0.dev4 → flamapy-fm-2.0.0.dev6}/flamapy/metamodels/fm_metamodel/transformations/json_reader.py +0 -0
  29. {flamapy-fm-2.0.0.dev4 → flamapy-fm-2.0.0.dev6}/flamapy/metamodels/fm_metamodel/transformations/json_writer.py +0 -0
  30. {flamapy-fm-2.0.0.dev4 → flamapy-fm-2.0.0.dev6}/flamapy/metamodels/fm_metamodel/transformations/pysat_to_fm.py +0 -0
  31. {flamapy-fm-2.0.0.dev4 → flamapy-fm-2.0.0.dev6}/flamapy/metamodels/fm_metamodel/transformations/splot_writer.py +0 -0
  32. {flamapy-fm-2.0.0.dev4 → flamapy-fm-2.0.0.dev6}/flamapy/metamodels/fm_metamodel/transformations/uvl_reader.py +0 -0
  33. {flamapy-fm-2.0.0.dev4 → flamapy-fm-2.0.0.dev6}/flamapy/metamodels/fm_metamodel/transformations/uvl_writer.py +0 -0
  34. {flamapy-fm-2.0.0.dev4 → flamapy-fm-2.0.0.dev6}/flamapy/metamodels/fm_metamodel/transformations/xml_reader.py +0 -0
  35. {flamapy-fm-2.0.0.dev4 → flamapy-fm-2.0.0.dev6}/flamapy_fm.egg-info/SOURCES.txt +0 -0
  36. {flamapy-fm-2.0.0.dev4 → flamapy-fm-2.0.0.dev6}/flamapy_fm.egg-info/dependency_links.txt +0 -0
  37. {flamapy-fm-2.0.0.dev4 → flamapy-fm-2.0.0.dev6}/flamapy_fm.egg-info/top_level.txt +0 -0
  38. {flamapy-fm-2.0.0.dev4 → flamapy-fm-2.0.0.dev6}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: flamapy-fm
3
- Version: 2.0.0.dev4
3
+ Version: 2.0.0.dev6
4
4
  Summary: flamapy-fm is a plugin to Flamapy module
5
5
  Home-page: https://github.com/flamapy/fm_metamodel
6
6
  Author: Flamapy
@@ -173,6 +173,9 @@ class Feature(VariabilityElement):
173
173
  def __str__(self) -> str:
174
174
  return self.name
175
175
 
176
+ def __repr__(self) -> str:
177
+ return f"{self.name}"
178
+
176
179
  def __hash__(self) -> int:
177
180
  return hash(self.name)
178
181
 
@@ -123,6 +123,8 @@ class FMMetrics(Metrics): # pylint: disable=too-many-instance-attributes
123
123
  result=_abstract_features,
124
124
  size=len(_abstract_features),
125
125
  ratio=self.get_ratio(_abstract_features, self._features),
126
+ parent="Features",
127
+ level=1
126
128
  )
127
129
  return result
128
130
 
@@ -137,6 +139,8 @@ class FMMetrics(Metrics): # pylint: disable=too-many-instance-attributes
137
139
  result=_concrete_features,
138
140
  size=len(_concrete_features),
139
141
  ratio=self.get_ratio(_concrete_features, self._features),
142
+ parent="Features",
143
+ level=1
140
144
  )
141
145
  return result
142
146
 
@@ -151,6 +155,8 @@ class FMMetrics(Metrics): # pylint: disable=too-many-instance-attributes
151
155
  result=_leaf_features,
152
156
  size=len(_leaf_features),
153
157
  ratio=self.get_ratio(_leaf_features, self._features),
158
+ parent="Features",
159
+ level=1
154
160
  )
155
161
  return result
156
162
 
@@ -167,6 +173,8 @@ class FMMetrics(Metrics): # pylint: disable=too-many-instance-attributes
167
173
  result=_compound_features,
168
174
  size=len(_compound_features),
169
175
  ratio=self.get_ratio(_compound_features, self._features),
176
+ parent="Features",
177
+ level=1
170
178
  )
171
179
  return result
172
180
 
@@ -187,6 +195,8 @@ class FMMetrics(Metrics): # pylint: disable=too-many-instance-attributes
187
195
  ratio=self.get_ratio(
188
196
  _concrete_compound_features, self.concrete_features()["result"]
189
197
  ),
198
+ parent="Concrete features",
199
+ level=2
190
200
  )
191
201
  return result
192
202
 
@@ -207,6 +217,8 @@ class FMMetrics(Metrics): # pylint: disable=too-many-instance-attributes
207
217
  ratio=self.get_ratio(
208
218
  _concrete_leaf_features, self.concrete_features()["result"]
209
219
  ),
220
+ parent="Concrete features",
221
+ level=2
210
222
  )
211
223
  return result
212
224
 
@@ -227,6 +239,8 @@ class FMMetrics(Metrics): # pylint: disable=too-many-instance-attributes
227
239
  ratio=self.get_ratio(
228
240
  _abstract_compound_features, self._abstract_features.keys()
229
241
  ),
242
+ parent="Abstract features",
243
+ level=2
230
244
  )
231
245
  return result
232
246
 
@@ -247,6 +261,8 @@ class FMMetrics(Metrics): # pylint: disable=too-many-instance-attributes
247
261
  ratio=self.get_ratio(
248
262
  _abstract_leaf_features, self._abstract_features.keys()
249
263
  ),
264
+ parent="Abstract features",
265
+ level=2
250
266
  )
251
267
  return result
252
268
 
@@ -280,6 +296,8 @@ class FMMetrics(Metrics): # pylint: disable=too-many-instance-attributes
280
296
  result=_root_feature,
281
297
  size=1,
282
298
  ratio=self.get_ratio([_root_feature], self._features),
299
+ parent="Features",
300
+ level=1
283
301
  )
284
302
  return result
285
303
 
@@ -299,6 +317,8 @@ class FMMetrics(Metrics): # pylint: disable=too-many-instance-attributes
299
317
  result=_top_features,
300
318
  size=len(_top_features),
301
319
  ratio=self.get_ratio(_top_features, self._features),
320
+ parent="Root feature",
321
+ level=2
302
322
  )
303
323
  return result
304
324
 
@@ -320,6 +340,8 @@ class FMMetrics(Metrics): # pylint: disable=too-many-instance-attributes
320
340
  result=_solitary_features,
321
341
  size=len(_solitary_features),
322
342
  ratio=self.get_ratio(_solitary_features, self._features),
343
+ parent="Features",
344
+ level=1
323
345
  )
324
346
  return result
325
347
 
@@ -338,6 +360,8 @@ class FMMetrics(Metrics): # pylint: disable=too-many-instance-attributes
338
360
  result=_grouped_features,
339
361
  size=len(_grouped_features),
340
362
  ratio=self.get_ratio(_grouped_features, self._features),
363
+ parent="Features",
364
+ level=1
341
365
  )
342
366
  return result
343
367
 
@@ -357,6 +381,8 @@ class FMMetrics(Metrics): # pylint: disable=too-many-instance-attributes
357
381
  ratio=self.get_ratio(
358
382
  _mandatory_features, self.solitary_features()["result"]
359
383
  ),
384
+ parent="Tree relationships",
385
+ level=1
360
386
  )
361
387
  return result
362
388
 
@@ -376,6 +402,8 @@ class FMMetrics(Metrics): # pylint: disable=too-many-instance-attributes
376
402
  ratio=self.get_ratio(
377
403
  _optional_features, self.solitary_features()["result"]
378
404
  ),
405
+ parent="Tree relationships",
406
+ level=1
379
407
  )
380
408
  return result
381
409
 
@@ -394,6 +422,8 @@ class FMMetrics(Metrics): # pylint: disable=too-many-instance-attributes
394
422
  result=_feature_groups,
395
423
  size=len(_feature_groups),
396
424
  ratio=self.get_ratio(_feature_groups, _tree_relationships),
425
+ parent="Tree relationships",
426
+ level=1
397
427
  )
398
428
  return result
399
429
 
@@ -415,6 +445,8 @@ class FMMetrics(Metrics): # pylint: disable=too-many-instance-attributes
415
445
  result=_alternative_groups,
416
446
  size=len(_alternative_groups),
417
447
  ratio=self.get_ratio(_alternative_groups, _group_features),
448
+ parent="Feature groups",
449
+ level=2
418
450
  )
419
451
  return result
420
452
 
@@ -434,6 +466,8 @@ class FMMetrics(Metrics): # pylint: disable=too-many-instance-attributes
434
466
  result=_or_groups,
435
467
  size=len(_or_groups),
436
468
  ratio=self.get_ratio(_or_groups, _group_features),
469
+ parent="Feature groups",
470
+ level=2
437
471
  )
438
472
  return result
439
473
 
@@ -450,6 +484,8 @@ class FMMetrics(Metrics): # pylint: disable=too-many-instance-attributes
450
484
  result=_mutex_groups,
451
485
  size=len(_mutex_groups),
452
486
  ratio=self.get_ratio(_mutex_groups, _group_features),
487
+ parent="Feature groups",
488
+ level=2
453
489
  )
454
490
  return result
455
491
 
@@ -468,6 +504,8 @@ class FMMetrics(Metrics): # pylint: disable=too-many-instance-attributes
468
504
  result=_cardinality_groups,
469
505
  size=len(_cardinality_groups),
470
506
  ratio=self.get_ratio(_cardinality_groups, _group_features),
507
+ parent="Feature groups",
508
+ level=2
471
509
  )
472
510
  return result
473
511
 
@@ -497,6 +535,8 @@ class FMMetrics(Metrics): # pylint: disable=too-many-instance-attributes
497
535
  name=name,
498
536
  doc=self.min_children_per_feature.__doc__,
499
537
  result=_min_children_per_feature,
538
+ parent="Branching factor",
539
+ level=1
500
540
  )
501
541
  return result
502
542
 
@@ -512,6 +552,8 @@ class FMMetrics(Metrics): # pylint: disable=too-many-instance-attributes
512
552
  name=name,
513
553
  doc=self.max_children_per_feature.__doc__,
514
554
  result=_max_children_per_feature,
555
+ parent="Branching factor",
556
+ level=1
515
557
  )
516
558
  return result
517
559
 
@@ -529,6 +571,8 @@ class FMMetrics(Metrics): # pylint: disable=too-many-instance-attributes
529
571
  name=name,
530
572
  doc=self.avg_children_per_feature.__doc__,
531
573
  result=_avg_children_per_feature,
574
+ parent="Branching factor",
575
+ level=1
532
576
  )
533
577
  return result
534
578
 
@@ -548,7 +592,9 @@ class FMMetrics(Metrics): # pylint: disable=too-many-instance-attributes
548
592
  name = "Max depth of tree"
549
593
  _max_depth_tree = max(self._feature_ancestors)
550
594
  result = self.construct_result(
551
- name=name, doc=self.max_depth_tree.__doc__, result=_max_depth_tree
595
+ name=name, doc=self.max_depth_tree.__doc__, result=_max_depth_tree,
596
+ parent="Depth of tree",
597
+ level=1
552
598
  )
553
599
  return result
554
600
 
@@ -561,6 +607,8 @@ class FMMetrics(Metrics): # pylint: disable=too-many-instance-attributes
561
607
  name=name,
562
608
  doc=self.mean_depth_tree.__doc__,
563
609
  result=round(_mean_depth_tree, 2),
610
+ parent="Depth of tree",
611
+ level=1
564
612
  )
565
613
  return result
566
614
 
@@ -573,6 +621,8 @@ class FMMetrics(Metrics): # pylint: disable=too-many-instance-attributes
573
621
  name=name,
574
622
  doc=self.median_depth_tree.__doc__,
575
623
  result=round(_median_depth_tree, 2),
624
+ parent="Depth of tree",
625
+ level=1
576
626
  )
577
627
  return result
578
628
 
@@ -606,6 +656,8 @@ class FMMetrics(Metrics): # pylint: disable=too-many-instance-attributes
606
656
  result=_simple_constraints,
607
657
  size=len(_simple_constraints),
608
658
  ratio=self.get_ratio(_simple_constraints, self.model.get_constraints()),
659
+ parent="Cross-tree constraints",
660
+ level=1
609
661
  )
610
662
  return result
611
663
 
@@ -628,6 +680,8 @@ class FMMetrics(Metrics): # pylint: disable=too-many-instance-attributes
628
680
  ratio=self.get_ratio(
629
681
  _requires_constraints, self.model.get_simple_constraints()
630
682
  ),
683
+ parent="Simple constraints",
684
+ level=2
631
685
  )
632
686
  return result
633
687
 
@@ -650,6 +704,8 @@ class FMMetrics(Metrics): # pylint: disable=too-many-instance-attributes
650
704
  ratio=self.get_ratio(
651
705
  _excludes_constraints, self.model.get_simple_constraints()
652
706
  ),
707
+ parent="Simple constraints",
708
+ level=2
653
709
  )
654
710
  return result
655
711
 
@@ -669,6 +725,8 @@ class FMMetrics(Metrics): # pylint: disable=too-many-instance-attributes
669
725
  result=_complex_constraints,
670
726
  size=len(_complex_constraints),
671
727
  ratio=self.get_ratio(_complex_constraints, self.model.get_constraints()),
728
+ parent="Cross-tree constraints",
729
+ level=1
672
730
  )
673
731
  return result
674
732
 
@@ -690,6 +748,8 @@ class FMMetrics(Metrics): # pylint: disable=too-many-instance-attributes
690
748
  ratio=self.get_ratio(
691
749
  _pseudocomplex_constraints, self.model.get_complex_constraints()
692
750
  ),
751
+ parent="Complex constraints",
752
+ level=2
693
753
  )
694
754
  return result
695
755
 
@@ -711,6 +771,8 @@ class FMMetrics(Metrics): # pylint: disable=too-many-instance-attributes
711
771
  ratio=self.get_ratio(
712
772
  _strictcomplex_constraints, self.model.get_complex_constraints()
713
773
  ),
774
+ parent="Complex constraints",
775
+ level=2
714
776
  )
715
777
  return result
716
778
 
@@ -723,6 +785,8 @@ class FMMetrics(Metrics): # pylint: disable=too-many-instance-attributes
723
785
  name=name,
724
786
  doc=self.min_constraints_per_feature.__doc__,
725
787
  result=min(_constraints_per_feature),
788
+ parent="Cross-tree constraints",
789
+ level=1
726
790
  )
727
791
  return result
728
792
 
@@ -735,6 +799,8 @@ class FMMetrics(Metrics): # pylint: disable=too-many-instance-attributes
735
799
  name=name,
736
800
  doc=self.max_constraints_per_feature.__doc__,
737
801
  result=max(_constraints_per_feature),
802
+ parent="Cross-tree constraints",
803
+ level=1
738
804
  )
739
805
  return result
740
806
 
@@ -747,6 +813,8 @@ class FMMetrics(Metrics): # pylint: disable=too-many-instance-attributes
747
813
  name=name,
748
814
  doc=self.avg_constraints_per_feature.__doc__,
749
815
  result=round(statistics.mean(_constraints_per_feature), 2),
816
+ parent="Cross-tree constraints",
817
+ level=1
750
818
  )
751
819
  return result
752
820
 
@@ -767,5 +835,7 @@ class FMMetrics(Metrics): # pylint: disable=too-many-instance-attributes
767
835
  result=_features_in_constraints,
768
836
  size=len(_features_in_constraints),
769
837
  ratio=self.get_ratio(_features_in_constraints, self._features, 2),
838
+ parent="Cross-tree constraints",
839
+ level=1
770
840
  )
771
841
  return result
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: flamapy-fm
3
- Version: 2.0.0.dev4
3
+ Version: 2.0.0.dev6
4
4
  Summary: flamapy-fm is a plugin to Flamapy module
5
5
  Home-page: https://github.com/flamapy/fm_metamodel
6
6
  Author: Flamapy
@@ -1,4 +1,4 @@
1
- flamapy-fw==2.0.0.dev4
1
+ flamapy-fw==2.0.0.dev6
2
2
  uvlparser==2.0.1
3
3
  afmparser==1.0.3
4
4
 
@@ -16,7 +16,7 @@ dev_requirements = read_requirements("requirements-dev.txt")
16
16
 
17
17
  setuptools.setup(
18
18
  name="flamapy-fm",
19
- version="2.0.0.dev4",
19
+ version="2.0.0.dev6",
20
20
  author="Flamapy",
21
21
  author_email="flamapy@us.es",
22
22
  description="flamapy-fm is a plugin to Flamapy module",