service-capacity-modeling 0.3.91__tar.gz → 0.3.92__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.
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/PKG-INFO +1 -1
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling/models/org/netflix/cassandra.py +1 -1
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling.egg-info/PKG-INFO +1 -1
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/tests/test_reproducible.py +35 -14
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/LICENSE +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/README.md +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling/__init__.py +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling/capacity_planner.py +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling/enum_utils.py +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling/hardware/__init__.py +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling/hardware/profiles/__init__.py +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling/hardware/profiles/pricing/aws/3yr-reserved_ec2.json +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling/hardware/profiles/pricing/aws/3yr-reserved_zz-overrides.json +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling/hardware/profiles/profiles.txt +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_c5.json +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_c5a.json +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_c5d.json +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_c5n.json +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_c6a.json +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_c6i.json +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_c6id.json +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_c7a.json +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_c7i.json +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_c8i.json +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_i3en.json +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_i4i.json +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_i7i.json +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_m4.json +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_m5.json +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_m5n.json +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_m6a.json +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_m6i.json +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_m6id.json +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_m6idn.json +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_m6in.json +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_m7a.json +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_m7i.json +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_m8i.json +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_r4.json +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_r5.json +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_r5n.json +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_r6a.json +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_r6i.json +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_r6id.json +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_r6idn.json +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_r6in.json +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_r7a.json +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_r7i.json +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_r8i.json +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling/hardware/profiles/shapes/aws/manual_drives.json +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling/hardware/profiles/shapes/aws/manual_instances.json +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling/hardware/profiles/shapes/aws/manual_services.json +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling/interface.py +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling/models/__init__.py +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling/models/common.py +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling/models/headroom_strategy.py +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling/models/org/__init__.py +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling/models/org/netflix/__init__.py +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling/models/org/netflix/aurora.py +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling/models/org/netflix/control.py +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling/models/org/netflix/counter.py +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling/models/org/netflix/crdb.py +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling/models/org/netflix/ddb.py +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling/models/org/netflix/elasticsearch.py +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling/models/org/netflix/entity.py +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling/models/org/netflix/evcache.py +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling/models/org/netflix/graphkv.py +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling/models/org/netflix/iso_date_math.py +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling/models/org/netflix/kafka.py +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling/models/org/netflix/key_value.py +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling/models/org/netflix/postgres.py +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling/models/org/netflix/rds.py +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling/models/org/netflix/stateless_java.py +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling/models/org/netflix/time_series.py +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling/models/org/netflix/time_series_config.py +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling/models/org/netflix/wal.py +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling/models/org/netflix/zookeeper.py +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling/models/utils.py +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling/stats.py +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling/tools/__init__.py +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling/tools/auto_shape.py +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling/tools/fetch_pricing.py +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling/tools/generate_missing.py +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling/tools/instance_families.py +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling.egg-info/SOURCES.txt +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling.egg-info/dependency_links.txt +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling.egg-info/entry_points.txt +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling.egg-info/requires.txt +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/service_capacity_modeling.egg-info/top_level.txt +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/setup.cfg +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/setup.py +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/tests/test_arguments.py +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/tests/test_buffers.py +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/tests/test_common.py +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/tests/test_desire_merge.py +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/tests/test_enum_utils.py +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/tests/test_generate_scenarios.py +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/tests/test_hardware.py +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/tests/test_hardware_shapes.py +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/tests/test_headroom_strategy.py +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/tests/test_io2.py +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/tests/test_model_dump.py +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/tests/test_simulation.py +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/tests/test_utils.py +0 -0
- {service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/tests/test_working_set.py +0 -0
|
@@ -388,7 +388,7 @@ def _estimate_cassandra_cluster_zonal( # pylint: disable=too-many-positional-ar
|
|
|
388
388
|
max_table_buffer_percent: float = 0.11,
|
|
389
389
|
) -> Optional[CapacityPlan]:
|
|
390
390
|
# Netflix Cassandra doesn't like to deploy on really small instances
|
|
391
|
-
if instance.cpu < 2 or instance.ram_gib
|
|
391
|
+
if instance.cpu < 2 or instance.ram_gib <= 16:
|
|
392
392
|
return None
|
|
393
393
|
|
|
394
394
|
# if we're not allowed to use gp2, skip EBS only types
|
{service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/tests/test_reproducible.py
RENAMED
|
@@ -38,6 +38,17 @@ def test_repeated_plans():
|
|
|
38
38
|
|
|
39
39
|
|
|
40
40
|
def test_compositional():
|
|
41
|
+
"""Test that key-value composition produces identical Cassandra plans.
|
|
42
|
+
|
|
43
|
+
The key-value model composes with Cassandra via `lambda x: x` (identity),
|
|
44
|
+
meaning the Cassandra sub-model must receive identical inputs and produce
|
|
45
|
+
byte-for-byte identical outputs. This is the strictest possible test of
|
|
46
|
+
compositional correctness.
|
|
47
|
+
|
|
48
|
+
Note: The final least_regret results may differ due to reduce_by_family()
|
|
49
|
+
filtering across both regional and zonal dimensions, but that is a
|
|
50
|
+
presentation concern - the underlying Cassandra planning must be identical.
|
|
51
|
+
"""
|
|
41
52
|
direct_result = planner.plan(
|
|
42
53
|
model_name="org.netflix.cassandra",
|
|
43
54
|
region="us-east-1",
|
|
@@ -53,20 +64,30 @@ def test_compositional():
|
|
|
53
64
|
explain=True,
|
|
54
65
|
)
|
|
55
66
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
67
|
+
# Strictest test: Cassandra regret clusters must be EXACTLY identical
|
|
68
|
+
# (same plans, same regrets, same order) since key-value uses `lambda x: x`
|
|
69
|
+
direct_cass = direct_result.explanation.regret_clusters_by_model[
|
|
70
|
+
"org.netflix.cassandra"
|
|
71
|
+
]
|
|
72
|
+
composed_cass = composed_result.explanation.regret_clusters_by_model[
|
|
73
|
+
"org.netflix.cassandra"
|
|
74
|
+
]
|
|
75
|
+
assert len(direct_cass) == len(composed_cass)
|
|
76
|
+
for i, ((d_plan, _, d_regret), (c_plan, _, c_regret)) in enumerate(
|
|
77
|
+
zip(direct_cass, composed_cass)
|
|
78
|
+
):
|
|
79
|
+
assert d_plan == c_plan, f"Plan {i} differs"
|
|
80
|
+
assert d_regret == c_regret, f"Regret {i} differs: {d_regret} vs {c_regret}"
|
|
81
|
+
|
|
82
|
+
# Verify the composed results have the expected structure
|
|
83
|
+
for lr in composed_result.least_regret:
|
|
84
|
+
# Zonal cluster should be Cassandra
|
|
85
|
+
assert lr.candidate_clusters.zonal[0].cluster_type == "cassandra"
|
|
86
|
+
# Regional cluster should be the key-value Java app
|
|
87
|
+
java = lr.candidate_clusters.regional[0]
|
|
68
88
|
assert java.cluster_type == "dgwkv"
|
|
69
|
-
#
|
|
89
|
+
# Sanity check on Java app sizing (~48 total CPUs: 6 x 8 vCPU instances,
|
|
90
|
+
# but may vary with CPU architecture or pricing improvements)
|
|
70
91
|
assert 100 > java.count * java.instance.cpu > 20
|
|
71
92
|
|
|
72
93
|
|
|
@@ -80,7 +101,7 @@ def test_multiple_options_diversify_with_more_simulations():
|
|
|
80
101
|
# These values happen to work today but may not work in the future with
|
|
81
102
|
# changes to the CP inputs (instances, costs, performance).
|
|
82
103
|
# Feel free to change the numbers as long as it fits the below assertion
|
|
83
|
-
arbitrary_num_results =
|
|
104
|
+
arbitrary_num_results = 12
|
|
84
105
|
arbitrary_small_number = 12
|
|
85
106
|
arbitrary_large_number = 1024
|
|
86
107
|
assert arbitrary_small_number < arbitrary_large_number
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/tests/test_arguments.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/tests/test_desire_merge.py
RENAMED
|
File without changes
|
{service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/tests/test_enum_utils.py
RENAMED
|
File without changes
|
|
File without changes
|
{service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/tests/test_hardware.py
RENAMED
|
File without changes
|
{service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/tests/test_hardware_shapes.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/tests/test_model_dump.py
RENAMED
|
File without changes
|
{service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/tests/test_simulation.py
RENAMED
|
File without changes
|
|
File without changes
|
{service_capacity_modeling-0.3.91 → service_capacity_modeling-0.3.92}/tests/test_working_set.py
RENAMED
|
File without changes
|