Skip to content

Commit

Permalink
[IMP] component: black, isort, prettier
Browse files Browse the repository at this point in the history
  • Loading branch information
nguyenminhchien committed Nov 23, 2023
1 parent 22566ce commit 47c5396
Show file tree
Hide file tree
Showing 15 changed files with 137 additions and 155 deletions.
101 changes: 47 additions & 54 deletions component/README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -17,25 +17,26 @@ Components
:target: http://www.gnu.org/licenses/lgpl-3.0-standalone.html
:alt: License: LGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fconnector-lightgray.png?logo=github
:target: https://github.com/OCA/connector/tree/16.0/component
:target: https://github.com/OCA/connector/tree/17.0/component
:alt: OCA/connector
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/connector-16-0/connector-16-0-component
:target: https://translation.odoo-community.org/projects/connector-17-0/connector-17-0-component
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
:target: https://runboat.odoo-community.org/builds?repo=OCA/connector&target_branch=16.0
:target: https://runboat.odoo-community.org/builds?repo=OCA/connector&target_branch=17.0
:alt: Try me on Runboat

|badge1| |badge2| |badge3| |badge4| |badge5|

This module implements a component system and is a base block for the Connector
Framework. It can be used without using the full Connector though.
This module implements a component system and is a base block for the
Connector Framework. It can be used without using the full Connector
though.

Documentation: http://odoo-connector.com/

You may also want to check the `Introduction to Odoo Components`_ by @guewen.

.. _Introduction to Odoo Components: https://dev.to/guewen/introduction-to-odoo-components-bn0
You may also want to check the `Introduction to Odoo
Components <https://dev.to/guewen/introduction-to-odoo-components-bn0>`__
by @guewen.

**Table of contents**

Expand All @@ -48,101 +49,93 @@ Usage
As a developer, you have access to a component system. You can find the
documentation in the code or on http://odoo-connector.com

In a nutshell, you can create components::
In a nutshell, you can create components:

::

from odoo.addons.component.core import Component
from odoo.addons.component.core import Component

class MagentoPartnerAdapter(Component):
_name = 'magento.partner.adapter'
_inherit = 'magento.adapter'
class MagentoPartnerAdapter(Component):
_name = 'magento.partner.adapter'
_inherit = 'magento.adapter'

_usage = 'backend.adapter'
_collection = 'magento.backend'
_apply_on = ['res.partner']
_usage = 'backend.adapter'
_collection = 'magento.backend'
_apply_on = ['res.partner']

And later, find the component you need at runtime (dynamic dispatch at
component level)::
component level):

def run(self, external_id):
backend_adapter = self.component(usage='backend.adapter')
external_data = backend_adapter.read(external_id)
::

def run(self, external_id):
backend_adapter = self.component(usage='backend.adapter')
external_data = backend_adapter.read(external_id)

In order for tests using components to work, you will need to use the base
class provided by `odoo.addons.component.tests.common`:
In order for tests using components to work, you will need to use the
base class provided by \`odoo.addons.component.tests.common\`:

* `TransactionComponentCase`
- TransactionComponentCase

There are also some specific base classes for testing the component registry,
using the ComponentRegistryCase as a base class. See the docstrings in
`tests/common.py`.
There are also some specific base classes for testing the component
registry, using the ComponentRegistryCase as a base class. See the
docstrings in tests/common.py.

Changelog
=========

.. [ The change log. The goal of this file is to help readers
understand changes between version. The primary audience is
end users and integrators. Purely technical changes such as
code refactoring must not be mentioned here.
This file may contain ONE level of section titles, underlined
with the ~ (tilde) character. Other section markers are
forbidden and will likely break the structure of the README.rst
or other documents where this fragment is included. ]
16.0.1.0.0 (2022-10-04)
~~~~~~~~~~~~~~~~~~~~~~~
-----------------------

* [MIGRATION] from 15.0
- [MIGRATION] from 15.0

15.0.1.0.0 (2021-11-25)
~~~~~~~~~~~~~~~~~~~~~~~
-----------------------

* [MIGRATION] from 14.0
- [MIGRATION] from 14.0

14.0.1.0.0 (2020-10-22)
~~~~~~~~~~~~~~~~~~~~~~~
-----------------------

* [MIGRATION] from 13.0
- [MIGRATION] from 13.0

13.0.1.0.0 (2019-10-23)
~~~~~~~~~~~~~~~~~~~~~~~
-----------------------

* [MIGRATION] from 12.0
- [MIGRATION] from 12.0

12.0.1.0.0 (2018-10-02)
~~~~~~~~~~~~~~~~~~~~~~~
-----------------------

* [MIGRATION] from 11.0 branched at rev. 324e006
- [MIGRATION] from 11.0 branched at rev. 324e006

Bug Tracker
===========

Bugs are tracked on `GitHub Issues <https://github.com/OCA/connector/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
`feedback <https://github.com/OCA/connector/issues/new?body=module:%20component%0Aversion:%2016.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
`feedback <https://github.com/OCA/connector/issues/new?body=module:%20component%0Aversion:%2017.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.

Do not contact contributors directly about support or help with technical issues.

Credits
=======

Authors
~~~~~~~
-------

* Camptocamp

Contributors
~~~~~~~~~~~~
------------

* Guewen Baconnier <[email protected]>
* Laurent Mignon <[email protected]>
* Simone Orsi <[email protected]>
- Guewen Baconnier <[email protected]>
- Laurent Mignon <[email protected]>
- Simone Orsi <[email protected]>

Maintainers
~~~~~~~~~~~
-----------

This module is maintained by the OCA.

Expand All @@ -162,6 +155,6 @@ Current `maintainer <https://odoo-community.org/page/maintainer-role>`__:

|maintainer-guewen|

This module is part of the `OCA/connector <https://github.com/OCA/connector/tree/16.0/component>`_ project on GitHub.
This module is part of the `OCA/connector <https://github.com/OCA/connector/tree/17.0/component>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
6 changes: 3 additions & 3 deletions component/core.py
Original file line number Diff line number Diff line change
Expand Up @@ -333,9 +333,9 @@ def component_by_name(self, name, model_name=None):
and work_model not in component_class.apply_on_models
):
if len(component_class.apply_on_models) == 1:
hint_models = "'{}'".format(component_class.apply_on_models[0])
hint_models = f"'{component_class.apply_on_models[0]}'"
else:
hint_models = "<one of {!r}>".format(component_class.apply_on_models)
hint_models = f"<one of {component_class.apply_on_models!r}>"
raise NoComponentError(
"Component with name '%s' can't be used for model '%s'.\n"
"Hint: you might want to use: "
Expand Down Expand Up @@ -473,7 +473,7 @@ def many_components(self, usage=None, model_name=None, **kw):
return [comp(work_context) for comp in component_classes]

def __str__(self):
return "WorkContext({}, {})".format(self.model_name, repr(self.collection))
return f"WorkContext({self.model_name}, {repr(self.collection)})"

__repr__ = __str__

Expand Down
3 changes: 3 additions & 0 deletions component/pyproject.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[build-system]
requires = ["whool"]
build-backend = "whool.buildapi"
3 changes: 3 additions & 0 deletions component/readme/CONTRIBUTORS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
- Guewen Baconnier \<<[email protected]>\>
- Laurent Mignon \<<[email protected]>\>
- Simone Orsi \<<[email protected]>\>
3 changes: 0 additions & 3 deletions component/readme/CONTRIBUTORS.rst

This file was deleted.

9 changes: 9 additions & 0 deletions component/readme/DESCRIPTION.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
This module implements a component system and is a base block for the
Connector Framework. It can be used without using the full Connector
though.

Documentation: <http://odoo-connector.com/>

You may also want to check the [Introduction to Odoo
Components](https://dev.to/guewen/introduction-to-odoo-components-bn0)
by @guewen.
8 changes: 0 additions & 8 deletions component/readme/DESCRIPTION.rst

This file was deleted.

19 changes: 19 additions & 0 deletions component/readme/HISTORY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
## 16.0.1.0.0 (2022-10-04)

- \[MIGRATION\] from 15.0

## 15.0.1.0.0 (2021-11-25)

- \[MIGRATION\] from 14.0

## 14.0.1.0.0 (2020-10-22)

- \[MIGRATION\] from 13.0

## 13.0.1.0.0 (2019-10-23)

- \[MIGRATION\] from 12.0

## 12.0.1.0.0 (2018-10-02)

- \[MIGRATION\] from 11.0 branched at rev. 324e006
34 changes: 0 additions & 34 deletions component/readme/HISTORY.rst

This file was deleted.

30 changes: 30 additions & 0 deletions component/readme/USAGE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
As a developer, you have access to a component system. You can find the
documentation in the code or on <http://odoo-connector.com>

In a nutshell, you can create components:

from odoo.addons.component.core import Component

class MagentoPartnerAdapter(Component):
_name = 'magento.partner.adapter'
_inherit = 'magento.adapter'

_usage = 'backend.adapter'
_collection = 'magento.backend'
_apply_on = ['res.partner']

And later, find the component you need at runtime (dynamic dispatch at
component level):

def run(self, external_id):
backend_adapter = self.component(usage='backend.adapter')
external_data = backend_adapter.read(external_id)

In order for tests using components to work, you will need to use the
base class provided by \`odoo.addons.component.tests.common\`:

- TransactionComponentCase

There are also some specific base classes for testing the component
registry, using the ComponentRegistryCase as a base class. See the
docstrings in tests/common.py.
32 changes: 0 additions & 32 deletions component/readme/USAGE.rst

This file was deleted.

Loading

0 comments on commit 47c5396

Please sign in to comment.