From 8fa2b0f25795ff7327a66fb322fc2453c4ef0461 Mon Sep 17 00:00:00 2001 From: Trinh Anh Ngoc Date: Sat, 21 Mar 2020 22:03:55 +0700 Subject: [PATCH] Hello --- .gitignore | 1 + pydevd_odoo/__init__.py | 1 + pydevd_odoo/pydevd_plugins/__init__.py | 5 +++ .../pydevd_plugins/extensions/__init__.py | 5 +++ .../extensions/types/__init__.py | 5 +++ .../extensions/types/pydevd_plugin_odoo.py | 45 +++++++++++++++++++ setup.py | 13 ++++++ 7 files changed, 75 insertions(+) create mode 100644 pydevd_odoo/__init__.py create mode 100644 pydevd_odoo/pydevd_plugins/__init__.py create mode 100644 pydevd_odoo/pydevd_plugins/extensions/__init__.py create mode 100644 pydevd_odoo/pydevd_plugins/extensions/types/__init__.py create mode 100644 pydevd_odoo/pydevd_plugins/extensions/types/pydevd_plugin_odoo.py create mode 100644 setup.py diff --git a/.gitignore b/.gitignore index b6e4761..078cf38 100644 --- a/.gitignore +++ b/.gitignore @@ -127,3 +127,4 @@ dmypy.json # Pyre type checker .pyre/ +.idea/ \ No newline at end of file diff --git a/pydevd_odoo/__init__.py b/pydevd_odoo/__init__.py new file mode 100644 index 0000000..07dd02e --- /dev/null +++ b/pydevd_odoo/__init__.py @@ -0,0 +1 @@ +from . import pydevd_plugins diff --git a/pydevd_odoo/pydevd_plugins/__init__.py b/pydevd_odoo/pydevd_plugins/__init__.py new file mode 100644 index 0000000..afff0c0 --- /dev/null +++ b/pydevd_odoo/pydevd_plugins/__init__.py @@ -0,0 +1,5 @@ +try: + __import__('pkg_resources').declare_namespace(__name__) +except ImportError: + import pkgutil + __path__ = pkgutil.extend_path(__path__, __name__) diff --git a/pydevd_odoo/pydevd_plugins/extensions/__init__.py b/pydevd_odoo/pydevd_plugins/extensions/__init__.py new file mode 100644 index 0000000..afff0c0 --- /dev/null +++ b/pydevd_odoo/pydevd_plugins/extensions/__init__.py @@ -0,0 +1,5 @@ +try: + __import__('pkg_resources').declare_namespace(__name__) +except ImportError: + import pkgutil + __path__ = pkgutil.extend_path(__path__, __name__) diff --git a/pydevd_odoo/pydevd_plugins/extensions/types/__init__.py b/pydevd_odoo/pydevd_plugins/extensions/types/__init__.py new file mode 100644 index 0000000..afff0c0 --- /dev/null +++ b/pydevd_odoo/pydevd_plugins/extensions/types/__init__.py @@ -0,0 +1,5 @@ +try: + __import__('pkg_resources').declare_namespace(__name__) +except ImportError: + import pkgutil + __path__ = pkgutil.extend_path(__path__, __name__) diff --git a/pydevd_odoo/pydevd_plugins/extensions/types/pydevd_plugin_odoo.py b/pydevd_odoo/pydevd_plugins/extensions/types/pydevd_plugin_odoo.py new file mode 100644 index 0000000..aa4ecad --- /dev/null +++ b/pydevd_odoo/pydevd_plugins/extensions/types/pydevd_plugin_odoo.py @@ -0,0 +1,45 @@ +import sys +from collections import OrderedDict + +from _pydevd_bundle.pydevd_extension_api import TypeResolveProvider, StrPresentationProvider +from _pydevd_bundle.pydevd_resolver import defaultResolver + + +class OdooRecordSetProvider(object): + def can_provide(self, type_object, type_name): + try: + from odoo import models + return isinstance(type_object, models.MetaModel) + except: + return False + + def resolve(self, obj, attr): + try: + _id = int(attr) + except: + return getattr(obj, attr) + else: + return obj[_id] + + def get_dictionary(self, obj): + if len(obj) > 1: + d = OrderedDict() + for idx, r in enumerate(obj): + d[str(idx)] = r + return d + return defaultResolver.get_dictionary(obj) + + def get_str(self, val): + if not val: + return '' + s = str(val.ids) + if len(val) == 1: + name = getattr(val, 'name') + if name: + s += ' ⇨ %s' % name + return s + + +if not sys.platform.startswith("java"): + TypeResolveProvider.register(OdooRecordSetProvider) + StrPresentationProvider.register(OdooRecordSetProvider) diff --git a/setup.py b/setup.py new file mode 100644 index 0000000..97f2f8e --- /dev/null +++ b/setup.py @@ -0,0 +1,13 @@ +from setuptools import setup, find_packages + +setup( + name='pydevd-odoo', + version='0.1', + description='PyDev.Debugger plugin for Odoo', + url='https://github.com/trinhanhngoc/pydevd-odoo', + author='Trinh Anh Ngoc', + author_email='atw1990@gmail.com', + packages=find_packages(), + license='MIT', + long_description=open('README.md').read(), +)