Skip to content

Commit 28c75b3

Browse files
authored
pylint (#8)
1 parent 8212004 commit 28c75b3

File tree

13 files changed

+738
-171
lines changed

13 files changed

+738
-171
lines changed

fuzzylite/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
pyfuzzylite is a trademark of FuzzyLite Limited
1515
fuzzylite is a registered trademark of FuzzyLite Limited.
1616
"""
17-
# flake8: noqa
1817

1918
from math import inf, isinf, isnan, nan # noqa
2019

@@ -39,6 +38,7 @@
3938
floating_point_type=float,
4039
factory_manager=FactoryManager(),
4140
)
41+
# pylint: disable = W0622 # Redefining built-in '__name__' (redefined-builtin)
4242
__name__ = lib.name
4343
__version__ = lib.version
4444
__doc__ = lib.summary

fuzzylite/activation.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@
2828

2929
import enum
3030
import heapq
31+
32+
# pylint: disable = W0611 # Unused import operator (unused-import) [False Positive]
3133
import operator
3234
from typing import Callable, List, Tuple, Union
3335

fuzzylite/defuzzifier.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
fuzzylite is a registered trademark of FuzzyLite Limited.
1616
"""
1717

18+
# pylint: disable = W0622 # Redefining built-in 'type' (redefined-builtin)
19+
1820
__all__ = [
1921
"Defuzzifier",
2022
"IntegralDefuzzifier",
@@ -231,10 +233,11 @@ def __init__(
231233

232234
def defuzzify(
233235
self,
234-
fuzzy_output: Term,
236+
term: Term,
235237
unused_minimum: float = nan,
236238
unused_maximum: float = nan,
237239
) -> float:
240+
fuzzy_output = term
238241
if not isinstance(fuzzy_output, Aggregated):
239242
raise ValueError(
240243
f"expected an Aggregated term, but found {type(fuzzy_output)}"
@@ -278,10 +281,11 @@ def __init__(
278281

279282
def defuzzify(
280283
self,
281-
fuzzy_output: Term,
284+
term: Term,
282285
unused_minimum: float = nan,
283286
unused_maximum: float = nan,
284287
) -> float:
288+
fuzzy_output = term
285289
if not isinstance(fuzzy_output, Aggregated):
286290
raise ValueError(
287291
f"expected an Aggregated term, but found {type(fuzzy_output)}"

fuzzylite/exporter.py

Lines changed: 63 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,10 @@
2727
from .operation import Op
2828

2929
if typing.TYPE_CHECKING:
30-
from .activation import Activation # noqa: F401
31-
from .defuzzifier import Defuzzifier # noqa: F401
30+
from .activation import Activation
31+
from .defuzzifier import Defuzzifier
3232
from .engine import Engine
33-
from .norm import Norm # noqa: F401
33+
from .norm import Norm
3434
from .rule import Rule, RuleBlock
3535
from .term import Term
3636
from .variable import InputVariable, OutputVariable, Variable
@@ -47,7 +47,7 @@ def to_string(self, instance: object) -> str:
4747
def to_file(self, path: Union[str, Path], instance: object) -> None:
4848
if isinstance(path, str):
4949
path = Path(path)
50-
with path.open(mode="w") as fll:
50+
with path.open(mode="w", encoding="UTF8") as fll:
5151
fll.write(self.to_string(instance))
5252

5353

@@ -76,7 +76,7 @@ def to_string(self, instance: object) -> str:
7676
if isinstance(instance, Term):
7777
return self.term(instance)
7878

79-
from .defuzzifier import Defuzzifier # noqa: F811
79+
from .defuzzifier import Defuzzifier
8080

8181
if isinstance(instance, Defuzzifier):
8282
return self.defuzzifier(instance)
@@ -88,12 +88,12 @@ def to_string(self, instance: object) -> str:
8888
if isinstance(instance, Rule):
8989
return self.rule(instance)
9090

91-
from .norm import Norm # noqa: F811
91+
from .norm import Norm
9292

9393
if isinstance(instance, Norm):
9494
return self.norm(instance)
9595

96-
from .activation import Activation # noqa: F811
96+
from .activation import Activation
9797

9898
if isinstance(instance, Activation):
9999
return self.activation(instance)
@@ -207,31 +207,33 @@ def __init__(self, indent: str = " ") -> None:
207207
self.indent = indent
208208

209209
def engine(self, engine: "Engine", level: int = 0) -> str:
210-
result = [f"""{level*self.indent}import fuzzylite as fl""", ""]
210+
result = [f"""{level * self.indent}import fuzzylite as fl""", ""]
211211
result += [
212-
f"{level*self.indent}engine = fl.Engine(",
213-
f"{(level+1)*self.indent}name={self.format(engine.name)},",
214-
f"{(level+1)*self.indent}description={self.format(engine.description)}",
212+
f"{level * self.indent}engine = fl.Engine(",
213+
f"{(level + 1) * self.indent}name={self.format(engine.name)},",
214+
f"{(level + 1) * self.indent}description={self.format(engine.description)}",
215215
")",
216216
]
217217

218218
input_variables: List[str] = []
219219
for iv in engine.input_variables:
220220
input_variables += [
221-
f"{(level+1)*self.indent}{self.input_variable(iv, level+2)}"
221+
f"{(level + 1) * self.indent}{self.input_variable(iv, level + 2)}"
222222
]
223223
result += [self.key_values("engine.input_variables", input_variables)]
224224

225225
output_variables: List[str] = []
226226
for ov in engine.output_variables:
227227
output_variables += [
228-
f"{(level+1)*self.indent}{self.output_variable(ov, level+2)}"
228+
f"{(level + 1) * self.indent}{self.output_variable(ov, level + 2)}"
229229
]
230230
result += [self.key_values("engine.output_variables", output_variables)]
231231

232232
rule_blocks: List[str] = []
233233
for rb in engine.rule_blocks:
234-
rule_blocks += [f"{(level+1)*self.indent}{self.rule_block(rb, level+2)}"]
234+
rule_blocks += [
235+
f"{(level + 1) * self.indent}{self.rule_block(rb, level + 2)}"
236+
]
235237
result += [self.key_values("engine.rule_blocks", rule_blocks)]
236238
result += [""]
237239
return "\n".join(result)
@@ -254,7 +256,7 @@ def to_string(self, instance: object) -> str:
254256
if isinstance(instance, Term):
255257
return self.term(instance)
256258

257-
from .defuzzifier import Defuzzifier # noqa: F811
259+
from .defuzzifier import Defuzzifier
258260

259261
if isinstance(instance, Defuzzifier):
260262
return self.defuzzifier(instance)
@@ -266,12 +268,12 @@ def to_string(self, instance: object) -> str:
266268
if isinstance(instance, Rule):
267269
return self.rule(instance)
268270

269-
from .norm import Norm # noqa: F811
271+
from .norm import Norm
270272

271273
if isinstance(instance, Norm):
272274
return self.norm(instance)
273275

274-
from .activation import Activation # noqa: F811
276+
from .activation import Activation
275277

276278
if isinstance(instance, Activation):
277279
return self.activation(instance)
@@ -292,115 +294,116 @@ def format(self, x: Any) -> str:
292294
return str(x)
293295

294296
def key_values(self, name: str, values: List[Any], level: int = 0) -> str:
295-
result = [f"{level*self.indent}{name} = "]
297+
result = [f"{level * self.indent}{name} = "]
296298
if not values:
297299
result[0] += "[]"
298300
else:
299301
result[0] += "["
300-
result += [",\n".join(values), f"{level*self.indent}]"]
302+
result += [",\n".join(values), f"{level * self.indent}]"]
301303
return "\n".join(result)
302304

303305
def input_variable(self, iv: "InputVariable", level: int = 1) -> str:
304306
result = [
305-
f"{level*self.indent}name={self.format(iv.name)}",
306-
f"{level*self.indent}description={self.format(iv.description)}",
307-
f"{level*self.indent}enabled={self.format(iv.enabled)}",
308-
f"{level*self.indent}minimum={self.format(iv.minimum)}",
309-
f"{level*self.indent}maximum={self.format(iv.maximum)}",
310-
f"{level*self.indent}lock_range={self.format(iv.lock_range)}",
307+
f"{level * self.indent}name={self.format(iv.name)}",
308+
f"{level * self.indent}description={self.format(iv.description)}",
309+
f"{level * self.indent}enabled={self.format(iv.enabled)}",
310+
f"{level * self.indent}minimum={self.format(iv.minimum)}",
311+
f"{level * self.indent}maximum={self.format(iv.maximum)}",
312+
f"{level * self.indent}lock_range={self.format(iv.lock_range)}",
311313
]
312314
if iv.terms:
313315
if len(iv.terms) == 1:
314-
terms = f"{level*self.indent}terms=[{self.term(iv.terms[0])}]"
316+
terms = f"{level * self.indent}terms=[{self.term(iv.terms[0])}]"
315317
else:
316318
terms = (
317-
f"{level*self.indent}terms=[\n"
319+
f"{level * self.indent}terms=[\n"
318320
+ ",\n".join(
319-
f"{(level+1)*self.indent}{self.term(term)}" for term in iv.terms
321+
f"{(level + 1) * self.indent}{self.term(term)}"
322+
for term in iv.terms
320323
)
321-
+ f"\n{level*self.indent}]"
324+
+ f"\n{level * self.indent}]"
322325
)
323326
result += [terms]
324327

325328
input_variable = ["fl.InputVariable("]
326329
input_variable += [",\n".join(result)]
327-
input_variable += [f"{max(0, level-1)*self.indent})"]
330+
input_variable += [f"{max(0, level - 1) * self.indent})"]
328331

329332
return "\n".join(input_variable)
330333

331334
def output_variable(self, ov: "OutputVariable", level: int = 1) -> str:
332335
result = [
333-
f"{level*self.indent}name={self.format(ov.name)}",
334-
f"{level*self.indent}description={self.format(ov.description)}",
335-
f"{level*self.indent}enabled={self.format(ov.enabled)}",
336-
f"{level*self.indent}minimum={self.format(ov.minimum)}",
337-
f"{level*self.indent}maximum={self.format(ov.maximum)}",
338-
f"{level*self.indent}lock_range={self.format(ov.lock_range)}",
339-
f"{level*self.indent}aggregation={self.norm(ov.aggregation)}",
340-
f"{level*self.indent}defuzzifier={self.defuzzifier(ov.defuzzifier)}",
341-
f"{level*self.indent}lock_previous={self.format(ov.lock_previous)}",
336+
f"{level * self.indent}name={self.format(ov.name)}",
337+
f"{level * self.indent}description={self.format(ov.description)}",
338+
f"{level * self.indent}enabled={self.format(ov.enabled)}",
339+
f"{level * self.indent}minimum={self.format(ov.minimum)}",
340+
f"{level * self.indent}maximum={self.format(ov.maximum)}",
341+
f"{level * self.indent}lock_range={self.format(ov.lock_range)}",
342+
f"{level * self.indent}aggregation={self.norm(ov.aggregation)}",
343+
f"{level * self.indent}defuzzifier={self.defuzzifier(ov.defuzzifier)}",
344+
f"{level * self.indent}lock_previous={self.format(ov.lock_previous)}",
342345
]
343346
if ov.terms:
344347
if len(ov.terms) == 1:
345-
terms = f"{level*self.indent}terms=[{self.term(ov.terms[0])}]"
348+
terms = f"{level * self.indent}terms=[{self.term(ov.terms[0])}]"
346349
else:
347350
terms = (
348-
f"{level*self.indent}terms=[\n"
351+
f"{level * self.indent}terms=[\n"
349352
+ ",\n".join(
350-
f"{(level+1)*self.indent}{self.term(term)}" for term in ov.terms
353+
f"{(level + 1) * self.indent}{self.term(term)}"
354+
for term in ov.terms
351355
)
352-
+ f"\n{level*self.indent}]"
356+
+ f"\n{level * self.indent}]"
353357
)
354358
result += [terms]
355359

356360
output_variable = ["fl.OutputVariable("]
357361
output_variable += [",\n".join(result)]
358-
output_variable += [f"{max(0, level-1)*self.indent})"]
362+
output_variable += [f"{max(0, level - 1) * self.indent})"]
359363

360364
return "\n".join(output_variable)
361365

362366
def rule_block(self, rb: "RuleBlock", level: int = 1) -> str:
363367
result = [
364-
f"{level*self.indent}name={self.format(rb.name)}",
365-
f"{level*self.indent}description={self.format(rb.description)}",
366-
f"{level*self.indent}enabled={self.format(rb.enabled)}",
367-
f"{level*self.indent}conjunction={self.norm(rb.conjunction)}",
368-
f"{level*self.indent}disjunction={self.norm(rb.disjunction)}",
369-
f"{level*self.indent}implication={self.norm(rb.implication)}",
370-
f"{level*self.indent}activation={self.activation(rb.activation)}",
368+
f"{level * self.indent}name={self.format(rb.name)}",
369+
f"{level * self.indent}description={self.format(rb.description)}",
370+
f"{level * self.indent}enabled={self.format(rb.enabled)}",
371+
f"{level * self.indent}conjunction={self.norm(rb.conjunction)}",
372+
f"{level * self.indent}disjunction={self.norm(rb.disjunction)}",
373+
f"{level * self.indent}implication={self.norm(rb.implication)}",
374+
f"{level * self.indent}activation={self.activation(rb.activation)}",
371375
]
372376
if rb.rules:
373377
if len(rb.rules) == 1:
374-
rules = f"{level*self.indent}rules=[{self.rule(rb.rules[0])}]"
378+
rules = f"{level * self.indent}rules=[{self.rule(rb.rules[0])}]"
375379
else:
376380
rules = (
377-
f"{level*self.indent}rules=[\n{(level+1)*self.indent}"
378-
+ f",\n{(level+1)*self.indent}".join(
381+
f"{level * self.indent}rules=[\n{(level + 1) * self.indent}"
382+
+ f",\n{(level + 1) * self.indent}".join(
379383
self.rule(rule) for rule in rb.rules
380384
)
381-
+ f"\n{level*self.indent}]"
385+
+ f"\n{level * self.indent}]"
382386
)
383387
result += [rules]
384388

385389
rule_block = ["fl.RuleBlock("]
386390
rule_block += [",\n".join(result)]
387-
rule_block += [f"{max(0, level-1)*self.indent})"]
391+
rule_block += [f"{max(0, level - 1) * self.indent})"]
388392

389393
return "\n".join(rule_block)
390394

391395
def term(self, term: "Term") -> str:
392-
from .operation import Op
393396
from .term import Discrete, Function, Linear
394397

395-
result = [f"fl."]
398+
result = ["fl."]
396399
if isinstance(term, Discrete):
397400
result += [
398-
f"{term.class_name}(" f"{self.format(term.name)}, ",
401+
f"{term.class_name}({self.format(term.name)}, ",
399402
"[",
400403
", ".join(
401404
self.format(value) for value in Discrete.values_from(term.xy)
402405
),
403-
"]" ")",
406+
"])",
404407
]
405408
elif isinstance(term, Function):
406409
result += [

0 commit comments

Comments
 (0)