Skip to content

Commit 8bae0a1

Browse files
nzloshCarlos Henderson
authored and
Carlos Henderson
committed
Remove six from code base.
(cherry picked from commit 677afbe)
1 parent ee06081 commit 8bae0a1

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

51 files changed

+175
-219
lines changed

.github/workflows/tox.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ on:
77
branches:
88
- master
99
schedule:
10-
# run every Monday at 6 AM
10+
# run every Monday at 6am
1111
- cron: '0 6 * * 1'
1212

1313
jobs:

CHANGELOG.rst

+2
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@ Fixed
3737
Contributed by @Stealthii
3838
* Update jsonschema requirements to allow 3.2 (security fix)
3939
Contributed by @james-bellamy
40+
* Removed six from code base since py2 is not supported.
41+
Contributed by @nzlosh
4042

4143
1.5.0
4244
-----

bin/orquesta-generate-schemas

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
# Copyright 2021-2023 The StackStorm Authors.
12
# Licensed to the StackStorm, Inc ('StackStorm') under one or more
23
# contributor license agreements. See the NOTICE file distributed with
34
# this work for additional information regarding copyright ownership.
@@ -18,7 +19,6 @@ from __future__ import absolute_import
1819
import inspect
1920
import json
2021
import os
21-
import six
2222
import sys
2323

2424
from orquesta.specs import native
@@ -32,7 +32,7 @@ def main():
3232
scripts_dir = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe())))
3333
schemas_dir = scripts_dir + "/../docs/source/schemas"
3434

35-
for name, model in six.iteritems(workflow_models):
35+
for name, model in workflow_models.items():
3636
new_schema_text = json.dumps(model.get_schema(), indent=4) + "\n"
3737
print('Generated schema for the "%s" model.' % name)
3838

bin/orquesta-rehearse

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#!/usr/bin/env python
22
#
3-
# Copyright 2021 The StackStorm Authors.
3+
# Copyright 2021-2023 The StackStorm Authors.
44
#
55
# Licensed to the StackStorm, Inc ('StackStorm') under one or more
66
# contributor license agreements. See the NOTICE file distributed with

orquesta/commands/rehearsal.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Copyright 2021 The StackStorm Authors.
1+
# Copyright 2021-2023 The StackStorm Authors.
22
#
33
# Licensed under the Apache License, Version 2.0 (the "License");
44
# you may not use this file except in compliance with the License.

orquesta/composers/base.py

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
# Copyright 2021-2023 The StackStorm Authors.
12
# Copyright 2019 Extreme Networks, Inc.
23
#
34
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -14,7 +15,6 @@
1415

1516
import abc
1617
import logging
17-
import six
1818

1919
from orquesta.utils import plugin as plugin_util
2020

@@ -26,8 +26,7 @@ def get_composer(catalog):
2626
return plugin_util.get_module("orquesta.composers", catalog)
2727

2828

29-
@six.add_metaclass(abc.ABCMeta)
30-
class WorkflowComposer(object):
29+
class WorkflowComposer(object, metaclass=abc.ABCMeta):
3130
wf_spec_type = None
3231

3332
@classmethod

orquesta/composers/native.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
# Copyright 2021-2023 The StackStorm Authors.
12
# Copyright 2019 Extreme Networks, Inc.
23
#
34
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -13,7 +14,7 @@
1314
# limitations under the License.
1415

1516
import logging
16-
from six.moves import queue
17+
import queue
1718

1819
from orquesta.composers import base as comp_base
1920
from orquesta import graphing

orquesta/conducting.py

+12-19
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Copyright 2021 The StackStorm Authors.
1+
# Copyright 2021-2023 The StackStorm Authors.
22
# Copyright 2019 Extreme Networks, Inc.
33
#
44
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -14,9 +14,7 @@
1414
# limitations under the License.
1515

1616
import logging
17-
import six
18-
19-
from six.moves import queue
17+
import queue
2018

2119
from orquesta import constants
2220
from orquesta import events
@@ -119,7 +117,7 @@ def get_task_sequence(self, task_id, route):
119117
task_id, route = q.get()
120118

121119
for i, t in enumerate(self.sequence):
122-
for k, v in six.iteritems(t["prev"]):
120+
for k, v in t["prev"].items():
123121
p = self.sequence[v]
124122
if p["id"] == task_id and p["route"] == route:
125123
seq.append((i, t))
@@ -590,7 +588,7 @@ def get_task(self, task_id, route):
590588
if getattr(task_spec, "delay", None):
591589
task_delay = task_spec.delay
592590

593-
if isinstance(task_delay, six.string_types):
591+
if isinstance(task_delay, str):
594592
task_delay = expr_base.evaluate(task_delay, task_ctx)
595593

596594
if not isinstance(task_delay, int):
@@ -790,7 +788,7 @@ def setup_retry_in_task_state(self, task_state_entry, in_ctx_idxs):
790788

791789
# Evaluate the retry delay value.
792790
if "delay" in task_state_entry["retry"] and isinstance(
793-
task_state_entry["retry"]["delay"], six.string_types
791+
task_state_entry["retry"]["delay"], str
794792
):
795793
delay_value = expr_base.evaluate(task_state_entry["retry"]["delay"], in_ctx)
796794

@@ -801,7 +799,7 @@ def setup_retry_in_task_state(self, task_state_entry, in_ctx_idxs):
801799

802800
# Evaluate the retry count value.
803801
if "count" in task_state_entry["retry"] and isinstance(
804-
task_state_entry["retry"]["count"], six.string_types
802+
task_state_entry["retry"]["count"], str
805803
):
806804
count_value = expr_base.evaluate(task_state_entry["retry"]["count"], in_ctx)
807805

@@ -1227,7 +1225,7 @@ def _collapse_task_rerun_requests(self, tasks=None):
12271225
# Only the index is required for further evaluation below.
12281226
result = {
12291227
k: [i[0] for i in self.workflow_state.get_task_sequence(t.task_id, t.route)]
1230-
for k, t in six.iteritems(tasks)
1228+
for k, t in tasks.items()
12311229
}
12321230

12331231
# If the list of task request is greater than one, then we have to check whether
@@ -1238,10 +1236,7 @@ def _collapse_task_rerun_requests(self, tasks=None):
12381236
# The for loops below identify task requests that have subsequent task sequences
12391237
# not in other task requests.
12401238
result = {
1241-
k: i
1242-
for k, i in six.iteritems(result)
1243-
for j in result.values()
1244-
if len(set(i) - set(j)) > 0
1239+
k: i for k, i in result.items() for j in result.values() if len(set(i) - set(j)) > 0
12451240
}
12461241

12471242
return result
@@ -1256,9 +1251,7 @@ def request_workflow_rerun(self, task_requests=None):
12561251
tasks = {t.task_state_entry_id: t for t in task_requests or []}
12571252

12581253
# If the list of tasks is provided, verify if task exist and rerunnable.
1259-
invalid_rerun_requests = [
1260-
t for k, t in six.iteritems(tasks) if k not in self.workflow_state.tasks
1261-
]
1254+
invalid_rerun_requests = [t for k, t in tasks.items() if k not in self.workflow_state.tasks]
12621255

12631256
if invalid_rerun_requests:
12641257
raise exc.InvalidTaskRerunRequest(invalid_rerun_requests)
@@ -1277,7 +1270,7 @@ def request_workflow_rerun(self, task_requests=None):
12771270
self._get_task_state_idx(t.task_id, t.route),
12781271
self.workflow_state.get_task(t.task_id, t.route),
12791272
)
1280-
for k, t in six.iteritems(tasks)
1273+
for k, t in tasks.items()
12811274
if k in self._collapse_task_rerun_requests(tasks)
12821275
}
12831276

@@ -1299,11 +1292,11 @@ def request_workflow_rerun(self, task_requests=None):
12991292
continuable_candidates = {
13001293
constants.TASK_STATE_ROUTE_FORMAT % (t["id"], str(t["route"])): t
13011294
for i, t in self.workflow_state.get_terminal_tasks()
1302-
if len([k for k, v in six.iteritems(t["next"]) if v]) > 0
1295+
if len([k for k, v in t["next"].items() if v]) > 0
13031296
}
13041297

13051298
# Automatically resume all continuable candidates.
1306-
for _, task in sorted(six.iteritems(continuable_candidates), key=lambda x: x[0]):
1299+
for _, task in sorted(continuable_candidates.items(), key=lambda x: x[0]):
13071300
# Reset terminal status for the continuable candidate.
13081301
task.pop("term", None)
13091302

orquesta/exceptions.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Copyright 2021 The StackStorm Authors.
1+
# Copyright 2021-2023 The StackStorm Authors.
22
# Copyright 2019 Extreme Networks, Inc.
33
#
44
# Licensed under the Apache License, Version 2.0 (the "License");

orquesta/expressions/base.py

+16-17
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
# -*- coding: utf-8 -*-
2+
3+
# Copyright 2021-2023 The StackStorm Authors.
14
# Copyright 2019 Extreme Networks, Inc.
25
#
36
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -16,7 +19,6 @@
1619
import inspect
1720
import logging
1821
import re
19-
import six
2022
import threading
2123

2224
from stevedore import extension
@@ -32,8 +34,7 @@
3234
_EXP_EVALUATOR_NAMESPACE = "orquesta.expressions.evaluators"
3335

3436

35-
@six.add_metaclass(abc.ABCMeta)
36-
class Evaluator(object):
37+
class Evaluator(metaclass=abc.ABCMeta):
3738
_type = "unspecified"
3839
_delimiter = None
3940

@@ -92,11 +93,11 @@ def get_evaluators():
9293

9394

9495
def get_statement_regexes():
95-
return {t: e.get_statement_regex() for t, e in six.iteritems(get_evaluators())}
96+
return {t: e.get_statement_regex() for t, e in get_evaluators().items()}
9697

9798

9899
def has_expressions(text):
99-
result = {t: e.has_expressions(text) for t, e in six.iteritems(get_evaluators())}
100+
result = {t: e.has_expressions(text) for t, e in get_evaluators().items()}
100101

101102
return any(result.values())
102103

@@ -105,18 +106,18 @@ def validate(statement):
105106
errors = []
106107

107108
if isinstance(statement, dict):
108-
for k, v in six.iteritems(statement):
109+
for k, v in statement.items():
109110
errors.extend(validate(k)["errors"])
110111
errors.extend(validate(v)["errors"])
111112

112113
elif isinstance(statement, list):
113114
for item in statement:
114115
errors.extend(validate(item)["errors"])
115116

116-
elif isinstance(statement, six.string_types):
117+
elif isinstance(statement, str):
117118
evaluators = [
118119
evaluator
119-
for name, evaluator in six.iteritems(get_evaluators())
120+
for name, evaluator in get_evaluators().items()
120121
if evaluator.has_expressions(statement)
121122
]
122123

@@ -131,13 +132,13 @@ def validate(statement):
131132

132133
def evaluate(statement, data=None):
133134
if isinstance(statement, dict):
134-
return {evaluate(k, data=data): evaluate(v, data=data) for k, v in six.iteritems(statement)}
135+
return {evaluate(k, data=data): evaluate(v, data=data) for k, v in statement.items()}
135136

136137
elif isinstance(statement, list):
137138
return [evaluate(item, data=data) for item in statement]
138139

139-
elif isinstance(statement, six.string_types):
140-
for name, evaluator in six.iteritems(get_evaluators()):
140+
elif isinstance(statement, str):
141+
for name, evaluator in get_evaluators().items():
141142
if evaluator.has_expressions(statement):
142143
return evaluator.evaluate(statement, data=data)
143144

@@ -148,16 +149,16 @@ def extract_vars(statement):
148149
variables = []
149150

150151
if isinstance(statement, dict):
151-
for k, v in six.iteritems(statement):
152+
for k, v in statement.items():
152153
variables.extend(extract_vars(k))
153154
variables.extend(extract_vars(v))
154155

155156
elif isinstance(statement, list):
156157
for item in statement:
157158
variables.extend(extract_vars(item))
158159

159-
elif isinstance(statement, six.string_types):
160-
for name, evaluator in six.iteritems(get_evaluators()):
160+
elif isinstance(statement, str):
161+
for name, evaluator in get_evaluators().items():
161162
for var_ref in evaluator.extract_vars(statement):
162163
for regex_var_extract in evaluator.get_var_extraction_regexes():
163164
result = re.search(regex_var_extract, var_ref)
@@ -170,8 +171,6 @@ def extract_vars(statement):
170171

171172

172173
def func_has_ctx_arg(func):
173-
getargspec = (
174-
inspect.getargspec if six.PY2 else inspect.getfullargspec # pylint: disable=no-member
175-
)
174+
getargspec = inspect.getfullargspec # pylint: disable=no-member
176175

177176
return "context" in getargspec(func).args

orquesta/expressions/functions/common.py

+5-4
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
# Copyright 2021-2023 The StackStorm Authors.
12
# Copyright 2019 Extreme Networks, Inc.
23
#
34
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -13,7 +14,7 @@
1314
# limitations under the License.
1415

1516
import json
16-
import six
17+
from itertools import zip_longest
1718

1819
from orquesta import exceptions as exc
1920

@@ -22,7 +23,7 @@ def json_(s):
2223
if isinstance(s, dict):
2324
return s
2425

25-
if not isinstance(s, six.string_types):
26+
if not isinstance(s, str):
2627
raise TypeError("Given object is not typeof string.")
2728

2829
return json.loads(s)
@@ -36,7 +37,7 @@ def zip_(*args, **kwargs):
3637

3738
pad_with = kwargs.pop("pad", None)
3839

39-
return list(six.moves.zip_longest(*args, fillvalue=pad_with))
40+
return list(zip_longest(*args, fillvalue=pad_with))
4041

4142

4243
def ctx_(context, key=None):
@@ -49,4 +50,4 @@ def ctx_(context, key=None):
4950

5051
return context["__vars"][key]
5152
else:
52-
return {k: v for k, v in six.iteritems(context["__vars"]) if not k.startswith("__")}
53+
return {k: v for k, v in context["__vars"].items() if not k.startswith("__")}

orquesta/expressions/functions/workflow.py

+1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
# Copyright 2020-2023 StackStorm project contributors.
12
# Copyright 2019 Extreme Networks, Inc.
23
#
34
# Licensed under the Apache License, Version 2.0 (the "License");

0 commit comments

Comments
 (0)