From 8686b8ae5651d3be2de0ed783fb64bcf26e67431 Mon Sep 17 00:00:00 2001
From: Vincent Texier <vit@free.fr>
Date: Fri, 25 Sep 2020 15:32:02 +0200
Subject: [PATCH] [enh] upgrade and freeze black formatter version

reformat code and tests
---
 requirements_dev.txt                          |  2 +-
 src/sakia/app.py                              |  6 +++-
 src/sakia/data/processors/identities.py       | 12 ++++----
 src/sakia/data/processors/sources.py          |  2 +-
 src/sakia/data/processors/tx_lifecycle.py     | 10 +++++--
 src/sakia/data/repositories/blockchains.py    |  3 +-
 src/sakia/data/repositories/certifications.py |  3 +-
 src/sakia/data/repositories/dividends.py      |  3 +-
 src/sakia/data/repositories/identities.py     |  3 +-
 src/sakia/data/repositories/nodes.py          |  3 +-
 src/sakia/data/repositories/sources.py        |  3 +-
 src/sakia/data/repositories/transactions.py   |  3 +-
 src/sakia/gui/dialogs/connection_cfg/model.py |  2 +-
 src/sakia/gui/navigation/graphs/wot/scene.py  | 11 +++++++-
 .../gui/navigation/identities/table_model.py  |  6 ++--
 src/sakia/gui/navigation/model.py             |  4 ++-
 .../gui/navigation/network/controller.py      |  4 ++-
 .../gui/navigation/txhistory/controller.py    | 12 ++++----
 src/sakia/services/documents.py               |  4 ++-
 src/sakia/services/identities.py              | 18 ++++++++----
 src/sakia/services/transactions.py            |  6 +++-
 tests/technical/test_transactions_service.py  |  8 +++---
 tests/unit/services/test_sources.py           | 28 +++++++++++++------
 23 files changed, 99 insertions(+), 57 deletions(-)

diff --git a/requirements_dev.txt b/requirements_dev.txt
index d13caef0..c65f86bf 100644
--- a/requirements_dev.txt
+++ b/requirements_dev.txt
@@ -1,4 +1,4 @@
-black
+black==20.8b1
 duniter-mirage>=0.1.50
 mypy==0.770
 pylint==2.4.4
diff --git a/src/sakia/app.py b/src/sakia/app.py
index 8402fb1a..20ad6203 100644
--- a/src/sakia/app.py
+++ b/src/sakia/app.py
@@ -147,7 +147,11 @@ class Application(QObject):
         self._logger.debug(
             "Load root servers config file: {}".format(root_servers_config_path)
         )
-        with open(root_servers_config_path, "r", encoding="utf-8",) as stream:
+        with open(
+            root_servers_config_path,
+            "r",
+            encoding="utf-8",
+        ) as stream:
             self.root_servers = yaml.load(stream, Loader=yaml.FullLoader)
 
     def load_profile(self, profile_name):
diff --git a/src/sakia/data/processors/identities.py b/src/sakia/data/processors/identities.py
index 7416ce9b..0d93e7b9 100644
--- a/src/sakia/data/processors/identities.py
+++ b/src/sakia/data/processors/identities.py
@@ -107,11 +107,13 @@ class IdentitiesProcessor:
                             )
                             if identity not in identities:
                                 # Search same identity with empty blockstamp (incomplete)
-                                same_with_empty_blockstamp = self._identities_repo.get_one(
-                                    currency=identity.currency,
-                                    uid=identity.uid,
-                                    pubkey=identity.pubkey,
-                                    blockstamp=BlockUID.empty(),
+                                same_with_empty_blockstamp = (
+                                    self._identities_repo.get_one(
+                                        currency=identity.currency,
+                                        uid=identity.uid,
+                                        pubkey=identity.pubkey,
+                                        blockstamp=BlockUID.empty(),
+                                    )
                                 )
                                 # Same identity with empty blockstamp (incomplete) should not appears as duplicate
                                 # Beware that identities in block 0 have empty blockstamps !
diff --git a/src/sakia/data/processors/sources.py b/src/sakia/data/processors/sources.py
index 0ca1812d..864d2d05 100644
--- a/src/sakia/data/processors/sources.py
+++ b/src/sakia/data/processors/sources.py
@@ -49,7 +49,7 @@ class SourcesProcessor:
         return sum([s.amount * (10 ** s.base) for s in sources])
 
     def available(self, currency, pubkey):
-        """"
+        """ "
         :param str currency: the currency of the sources
         :param str pubkey: the owner of the sources
         :rtype: list[sakia.data.entities.Source]
diff --git a/src/sakia/data/processors/tx_lifecycle.py b/src/sakia/data/processors/tx_lifecycle.py
index 3bce1c73..04d179f9 100644
--- a/src/sakia/data/processors/tx_lifecycle.py
+++ b/src/sakia/data/processors/tx_lifecycle.py
@@ -79,8 +79,12 @@ states = {
         (lambda tx, l: _broadcast_failure(tx, l), None, Transaction.REFUSED),
     ),
     (Transaction.TO_SEND, ()): ((_is_locally_created, _drop, Transaction.DROPPED),),
-    (Transaction.AWAITING, (str, int,)): (
-        (_found_in_block, _be_validated, Transaction.VALIDATED),
-    ),
+    (
+        Transaction.AWAITING,
+        (
+            str,
+            int,
+        ),
+    ): ((_found_in_block, _be_validated, Transaction.VALIDATED),),
     (Transaction.REFUSED, ()): ((_is_locally_created, _drop, Transaction.DROPPED),),
 }
diff --git a/src/sakia/data/repositories/blockchains.py b/src/sakia/data/repositories/blockchains.py
index 77ebfb51..41350600 100644
--- a/src/sakia/data/repositories/blockchains.py
+++ b/src/sakia/data/repositories/blockchains.py
@@ -7,8 +7,7 @@ from ..entities import Blockchain, BlockchainParameters
 
 @attr.s(frozen=True)
 class BlockchainsRepo:
-    """The repository for Blockchain entities.
-    """
+    """The repository for Blockchain entities."""
 
     _conn = attr.ib()  # :type sqlite3.Connection
     _primary_keys = (attr.fields(Blockchain).currency,)
diff --git a/src/sakia/data/repositories/certifications.py b/src/sakia/data/repositories/certifications.py
index bb727b5e..cc881484 100644
--- a/src/sakia/data/repositories/certifications.py
+++ b/src/sakia/data/repositories/certifications.py
@@ -5,8 +5,7 @@ from ..entities import Certification
 
 @attr.s(frozen=True)
 class CertificationsRepo:
-    """The repository for Communities entities.
-    """
+    """The repository for Communities entities."""
 
     _conn = attr.ib()  # :type sqlite3.Connection
     _primary_keys = (
diff --git a/src/sakia/data/repositories/dividends.py b/src/sakia/data/repositories/dividends.py
index f0627e2e..0d2f391f 100644
--- a/src/sakia/data/repositories/dividends.py
+++ b/src/sakia/data/repositories/dividends.py
@@ -5,8 +5,7 @@ from ..entities import Dividend
 
 @attr.s(frozen=True)
 class DividendsRepo:
-    """The repository for Communities entities.
-    """
+    """The repository for Communities entities."""
 
     _conn = attr.ib()  # :type sqlite3.Connection
     _primary_keys = (
diff --git a/src/sakia/data/repositories/identities.py b/src/sakia/data/repositories/identities.py
index dc68bf74..3de7aede 100644
--- a/src/sakia/data/repositories/identities.py
+++ b/src/sakia/data/repositories/identities.py
@@ -7,8 +7,7 @@ from ..entities import Identity
 
 @attr.s(frozen=True)
 class IdentitiesRepo:
-    """The repository for Identities entities.
-    """
+    """The repository for Identities entities."""
 
     _conn = attr.ib()  # :type sqlite3.Connection
     _primary_keys = (
diff --git a/src/sakia/data/repositories/nodes.py b/src/sakia/data/repositories/nodes.py
index 73f69842..09552ab9 100644
--- a/src/sakia/data/repositories/nodes.py
+++ b/src/sakia/data/repositories/nodes.py
@@ -6,8 +6,7 @@ from ..entities import Node
 
 @attr.s(frozen=True)
 class NodesRepo:
-    """The repository for Communities entities.
-    """
+    """The repository for Communities entities."""
 
     _conn = attr.ib()  # :type sqlite3.Connection
     _primary_keys = (attr.fields(Node).currency, attr.fields(Node).pubkey)
diff --git a/src/sakia/data/repositories/sources.py b/src/sakia/data/repositories/sources.py
index 24677752..f70ac232 100644
--- a/src/sakia/data/repositories/sources.py
+++ b/src/sakia/data/repositories/sources.py
@@ -5,8 +5,7 @@ from ..entities import Source
 
 @attr.s(frozen=True)
 class SourcesRepo:
-    """The repository for Communities entities.
-    """
+    """The repository for Communities entities."""
 
     _conn = attr.ib()  # :type sqlite3.Connection
     _primary_keys = (
diff --git a/src/sakia/data/repositories/transactions.py b/src/sakia/data/repositories/transactions.py
index c51c8a5d..c0cc1442 100644
--- a/src/sakia/data/repositories/transactions.py
+++ b/src/sakia/data/repositories/transactions.py
@@ -5,8 +5,7 @@ from ..entities import Transaction, Dividend
 
 @attr.s(frozen=True)
 class TransactionsRepo:
-    """The repository for Communities entities.
-    """
+    """The repository for Communities entities."""
 
     _conn = attr.ib()  # :type sqlite3.Connection
     _primary_keys = (
diff --git a/src/sakia/gui/dialogs/connection_cfg/model.py b/src/sakia/gui/dialogs/connection_cfg/model.py
index 92d151b2..d40454dd 100644
--- a/src/sakia/gui/dialogs/connection_cfg/model.py
+++ b/src/sakia/gui/dialogs/connection_cfg/model.py
@@ -146,7 +146,7 @@ class ConnectionConfigModel(QObject):
         )
 
     async def publish_selfcert(self, identity):
-        """"
+        """ "
         Publish the self certification of the connection identity
         """
         result = await self.app.documents_service.broadcast_identity(
diff --git a/src/sakia/gui/navigation/graphs/wot/scene.py b/src/sakia/gui/navigation/graphs/wot/scene.py
index 937577e0..a517fa4f 100644
--- a/src/sakia/gui/navigation/graphs/wot/scene.py
+++ b/src/sakia/gui/navigation/graphs/wot/scene.py
@@ -62,7 +62,16 @@ class WotScene(BaseScene):
 
     @staticmethod
     def center_pos(nb_certifiers, nb_certified, scale):
-        return 0, max(nb_certified, nb_certifiers,) / 2 * 0.12 * scale
+        return (
+            0,
+            max(
+                nb_certified,
+                nb_certifiers,
+            )
+            / 2
+            * 0.12
+            * scale,
+        )
 
     @staticmethod
     def certifiers_partial_layout(nx_graph, center, scale=1):
diff --git a/src/sakia/gui/navigation/identities/table_model.py b/src/sakia/gui/navigation/identities/table_model.py
index adfe01fa..243479ad 100644
--- a/src/sakia/gui/navigation/identities/table_model.py
+++ b/src/sakia/gui/navigation/identities/table_model.py
@@ -126,8 +126,10 @@ class IdentitiesFilterProxyModel(QSortFilterProxyModel):
                 font.setItalic(True)
                 return font
 
-            if role == Qt.DecorationRole and source_index.column() == IdentitiesTableModel.columns_ids.index(
-                "uid"
+            if (
+                role == Qt.DecorationRole
+                and source_index.column()
+                == IdentitiesTableModel.columns_ids.index("uid")
             ):
                 if status == STATUS_NOT_MEMBER:
                     return QIcon(":/icons/not_member")
diff --git a/src/sakia/gui/navigation/model.py b/src/sakia/gui/navigation/model.py
index 214fb53c..9174f32d 100644
--- a/src/sakia/gui/navigation/model.py
+++ b/src/sakia/gui/navigation/model.py
@@ -42,7 +42,9 @@ class NavigationModel(QObject):
                 "title": QCoreApplication.translate("NavigationModel", "Network"),
                 "icon": ":/icons/network_icon",
                 "component": "Network",
-                "dependencies": {"network_service": self.app.network_service,},
+                "dependencies": {
+                    "network_service": self.app.network_service,
+                },
                 "misc": {},
                 "children": [],
             },
diff --git a/src/sakia/gui/navigation/network/controller.py b/src/sakia/gui/navigation/network/controller.py
index 09634a55..80d4d12f 100644
--- a/src/sakia/gui/navigation/network/controller.py
+++ b/src/sakia/gui/navigation/network/controller.py
@@ -40,7 +40,9 @@ class NetworkController(QObject):
         :param sakia.services.NetworkService network_service:
         :return:
         """
-        view = NetworkView(parent.view,)
+        view = NetworkView(
+            parent.view,
+        )
         model = NetworkModel(None, app, network_service)
         txhistory = cls(parent, view, model)
         model.setParent(txhistory)
diff --git a/src/sakia/gui/navigation/txhistory/controller.py b/src/sakia/gui/navigation/txhistory/controller.py
index 2bbb639e..265b1b8e 100644
--- a/src/sakia/gui/navigation/txhistory/controller.py
+++ b/src/sakia/gui/navigation/txhistory/controller.py
@@ -210,11 +210,13 @@ class TxHistoryController(QObject):
             self._logger.error(str(e))
 
         try:
-            new_dividends = await self.model.transactions_service.update_dividends_history(
-                pubkey,
-                self.view.table_history.model().ts_from,
-                self.view.table_history.model().ts_to,
-                new_tx,
+            new_dividends = (
+                await self.model.transactions_service.update_dividends_history(
+                    pubkey,
+                    self.view.table_history.model().ts_from,
+                    self.view.table_history.model().ts_to,
+                    new_tx,
+                )
             )
             self._logger.debug("Found {} new dividends".format(len(new_dividends)))
 
diff --git a/src/sakia/services/documents.py b/src/sakia/services/documents.py
index 16182f8a..cbfda9c9 100644
--- a/src/sakia/services/documents.py
+++ b/src/sakia/services/documents.py
@@ -421,7 +421,9 @@ class DocumentsService:
                     SIG.token(receiver),
                     Operator.token("||"),
                     Condition.token(
-                        SIG.token(issuer), Operator.token("&&"), CSV.token(604800),
+                        SIG.token(issuer),
+                        Operator.token("&&"),
+                        CSV.token(604800),
                     ),
                 ),
                 Condition,
diff --git a/src/sakia/services/identities.py b/src/sakia/services/identities.py
index 159ff8a3..8d09fb87 100644
--- a/src/sakia/services/identities.py
+++ b/src/sakia/services/identities.py
@@ -112,8 +112,10 @@ class IdentitiesService(QObject):
                     blockstamp = BlockUID(ms["blockNumber"], ms["blockHash"])
                     membership_data = ms
             if membership_data:
-                identity.membership_timestamp = await self._blockchain_processor.timestamp(
-                    self.currency, blockstamp.number
+                identity.membership_timestamp = (
+                    await self._blockchain_processor.timestamp(
+                        self.currency, blockstamp.number
+                    )
                 )
                 identity.membership_buid = blockstamp
                 identity.membership_type = membership_data["membership"]
@@ -199,8 +201,10 @@ class IdentitiesService(QObject):
                         certified[cert] = certified_idty
                         # We save connections pubkeys
                         if self.is_identity_of_connection(identity):
-                            cert.timestamp = self._blockchain_processor.rounded_timestamp(
-                                self.currency, cert.block
+                            cert.timestamp = (
+                                self._blockchain_processor.rounded_timestamp(
+                                    self.currency, cert.block
+                                )
                             )
                             self._certs_processor.insert_or_update_certification(cert)
         except errors.DuniterError as e:
@@ -395,8 +399,10 @@ class IdentitiesService(QObject):
                         identity.blockstamp = block_uid(
                             identity_data["meta"]["timestamp"]
                         )
-                        identity.timestamp = self._blockchain_processor.rounded_timestamp(
-                            self.currency, identity.blockstamp.number
+                        identity.timestamp = (
+                            self._blockchain_processor.rounded_timestamp(
+                                self.currency, identity.blockstamp.number
+                            )
                         )
                         identity.outdistanced = identity_data["outdistanced"]
                         identity.written = identity_data["wasMember"]
diff --git a/src/sakia/services/transactions.py b/src/sakia/services/transactions.py
index b525a97e..437085c4 100644
--- a/src/sakia/services/transactions.py
+++ b/src/sakia/services/transactions.py
@@ -239,7 +239,11 @@ class TransactionsService(QObject):
                 pubkey, tx_doc.sha_hash
             ) and SimpleTransaction.is_simple(tx_doc):
                 tx = parse_transaction_doc(
-                    tx_doc, pubkey, tx_data["block_number"], tx_data["time"], txid,
+                    tx_doc,
+                    pubkey,
+                    tx_data["block_number"],
+                    tx_data["time"],
+                    txid,
                 )
                 if tx:
                     new_transfers.append(tx)
diff --git a/tests/technical/test_transactions_service.py b/tests/technical/test_transactions_service.py
index 944f3477..3b07032b 100644
--- a/tests/technical/test_transactions_service.py
+++ b/tests/technical/test_transactions_service.py
@@ -91,8 +91,8 @@ async def test_receive_tx(
 async def test_issue_dividend(
     application_with_one_connection, fake_server_with_blockchain, bob
 ):
-    dividends_before_send = application_with_one_connection.transactions_service.dividends(
-        bob.key.pubkey
+    dividends_before_send = (
+        application_with_one_connection.transactions_service.dividends(bob.key.pubkey)
     )
     start = fake_server_with_blockchain.forge.blocks[-1].number + 1
     fake_server_with_blockchain.forge.forge_block()
@@ -109,8 +109,8 @@ async def test_issue_dividend(
     await application_with_one_connection.transactions_service.handle_new_blocks(
         connections, start, end
     )
-    dividends_after_parse = application_with_one_connection.transactions_service.dividends(
-        bob.key.pubkey
+    dividends_after_parse = (
+        application_with_one_connection.transactions_service.dividends(bob.key.pubkey)
     )
     assert len(dividends_before_send) + 2 == len(dividends_after_parse)
     await fake_server_with_blockchain.close()
diff --git a/tests/unit/services/test_sources.py b/tests/unit/services/test_sources.py
index 2a098a52..1f0dd883 100644
--- a/tests/unit/services/test_sources.py
+++ b/tests/unit/services/test_sources.py
@@ -77,8 +77,10 @@ def test_evaluate_condition_source_lock_mode_0(
     application_with_one_connection.instanciate_services()
 
     # capture blockchain median time
-    median_time = application_with_one_connection.blockchain_service._blockchain_processor.time(
-        application_with_one_connection.currency
+    median_time = (
+        application_with_one_connection.blockchain_service._blockchain_processor.time(
+            application_with_one_connection.currency
+        )
     )
     tx_hash = "FCAD5A388AC8A811B45A9334A375585E77071AA9F6E5B6896582961A6C66F365"
 
@@ -121,7 +123,9 @@ def test_evaluate_condition_source_lock_mode_0(
         )
     )
     # test simple signature condition
-    condition = output.Condition.token(output.SIG.token(bob.key.pubkey),)
+    condition = output.Condition.token(
+        output.SIG.token(bob.key.pubkey),
+    )
     # bob can spend this source
     (
         result,
@@ -163,8 +167,10 @@ def test_evaluate_condition_source_lock_mode_1(
     application_with_one_connection.instanciate_services()
 
     # capture blockchain median time
-    median_time = application_with_one_connection.blockchain_service._blockchain_processor.time(
-        application_with_one_connection.currency
+    median_time = (
+        application_with_one_connection.blockchain_service._blockchain_processor.time(
+            application_with_one_connection.currency
+        )
     )
     tx_hash = "FCAD5A388AC8A811B45A9334A375585E77071AA9F6E5B6896582961A6C66F365"
 
@@ -347,8 +353,10 @@ def test_evaluate_condition_source_multisig(
     application_with_one_connection.instanciate_services()
 
     # capture blockchain median time
-    median_time = application_with_one_connection.blockchain_service._blockchain_processor.time(
-        application_with_one_connection.currency
+    median_time = (
+        application_with_one_connection.blockchain_service._blockchain_processor.time(
+            application_with_one_connection.currency
+        )
     )
     tx_hash = "FCAD5A388AC8A811B45A9334A375585E77071AA9F6E5B6896582961A6C66F365"
 
@@ -459,8 +467,10 @@ def test_evaluate_condition_source_atomic_swap(
     transactions_repo = TransactionsRepo(meta_repo.conn)
 
     # capture blockchain median time
-    median_time = application_with_one_connection.blockchain_service._blockchain_processor.time(
-        application_with_one_connection.currency
+    median_time = (
+        application_with_one_connection.blockchain_service._blockchain_processor.time(
+            application_with_one_connection.currency
+        )
     )
 
     tx1_hash = "FCAD5A388AC8A811B45A9334A375585E77071AA9F6E5B6896582961A6C66F365"
-- 
GitLab