{ "info": { "author": "Dmytro Katyukha", "author_email": "firemage.dima@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: GNU General Public License (GPL)", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: Implementation :: CPython", "Topic :: Software Development :: Libraries", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Utilities" ], "description": "OpenERP / Odoo proxy\n====================\n\n\n.. image:: https://travis-ci.org/katyukha/openerp-proxy.svg?branch=master\n :target: https://travis-ci.org/katyukha/openerp-proxy\n\n.. image:: https://coveralls.io/repos/katyukha/openerp-proxy/badge.svg?branch=master&service=github\n :target: https://coveralls.io/github/katyukha/openerp-proxy?branch=master\n\n.. image:: https://img.shields.io/pypi/v/openerp_proxy.svg\n :target: https://pypi.python.org/pypi/openerp_proxy/\n\n.. image:: https://img.shields.io/pypi/l/openerp_proxy.svg\n :target: https://pypi.python.org/pypi/openerp_proxy/\n\n.. image:: https://img.shields.io/pypi/pyversions/openerp_proxy.svg\n :target: https://pypi.python.org/pypi/openerp_proxy/\n\n.. image:: https://img.shields.io/pypi/format/openerp_proxy.svg\n :target: https://pypi.python.org/pypi/openerp_proxy/\n\n-------------------\n\n.. contents::\n :depth: 2\n\n\nOverview\n--------\n\nThis project is just **RPC client** for Odoo.\nIt aims to ease access to openerp data via shell and used\nmostly for data debuging purposes. This project provides interface similar to\nOdoo internal code to perform operations on **OpenERP** / **Odoo** objects hiding\n**XML-RPC** or **JSON-RPC** behind.\n\n\n - Are You still using pgAdmin for quering Odoo database?\n - Try this package (especialy with IPython Notebook), and You will forget about pgAdmin!\n\n\nFeatures\n~~~~~~~~\n\n- Use `odoo-rpc-client `__ under that hood, to get all its power\n- *Python 3.3+* support\n- You can call any public method on any OpenERP / Odoo object including:\n *read*, *search*, *write*, *unlink* and others\n- Have *a lot of speed optimizations* (caching, read only requested fields,\n read data for all records in current set (cache), by one RPC call, etc)\n- Desinged to take as more benefits of **IPython autocomplete** as posible\n- Works nice in `Jupyter Notebook `__ providing **HTML\n representation** for a most of objects.\n- Ability to export HTML table recordlist representation to *CSV file*\n- Ability to save connections to different databases in session.\n (By default password is not saved, and will be asked, but if You need to save it, just do this:\n ``session.option('store_passwords', True); session.save()``)\n- Provides *browse\\_record* like interface, allowing to browse related\n models too. Supports `browse `__ method.\n Also adds method `search_records `__ to simplify\n search-and-read operations.\n- *Extension support*. You can easily modify most of components of this app/lib\n creating Your own extensions and plugins. It is realy simple. See for examples in\n `openerp_proxy/ext/ `__ directory.\n- *Plugin Support*. Plugins are same as extensions, but aimed to implement additional logic.\n For example look at `openerp_proxy/plugins `__\n and `openerp_proxy/plugin.py `__ \n- Support of **JSON-RPC** for *version 8+* of Odoo\n- Support of using **named parametrs** in RPC method calls (server version 6.1 and higher).\n- `Sugar extension `__ which simplifys code a lot.\n- *Experimental* integration with `AnyField `__\n\n- Missed feature? ask in `Project Issues `__\n\n\nQuick example\n~~~~~~~~~~~~~\n\n.. code:: python\n\n from openerp_proxy import Client\n\n client = Client('localhost', 'my_db', 'user', 'password')\n\n # get current user\n client.user\n print(user.name)\n\n # simple rpc calls\n client.execute('res.partner', 'read', [user.partner_id.id])\n\n # Model browsing\n SaleOrder = client['sale.order']\n s_orders = SaleOrder.search_records([])\n for order in s_orders:\n print(order.name)\n for line in order.order_line:\n print(\"\\t%s\" % line.name)\n print(\"-\" * 5)\n print()\n\n\nSupported Odoo server versions\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nTested with Odoo *10.0*, *11.0*\n\nBut should support all odoo versions that\n`odoo_rpc_client `__\nsupports\n\n\nExamples\n~~~~~~~~\n\n- `Basics `_\n- `Examples & HTML tests `_\n- `RecordList Representation `_\n\n\nInstall\n-------\n\nThis project is present on `PyPI `_\nso it could be installed via PIP::\n\n pip install openerp_proxy\n\nthis will make available python package *openerp\\_proxy* and shell command ``openerp_proxy``\nSee `Usage`_ for more details\n\nIf You want to install development version of *OpenERP Proxy* you can do it via::\n\n pip install -e git+https://github.com/katyukha/openerp-proxy.git@dev#egg=openerp_proxy\n\nor (faster way)::\n\n pip install https://github.com/katyukha/openerp-proxy/archive/dev.zip\n\nAlso it is recommened to install at `Jupyter `_ (formely `IPython `_ notebook)\nto get all benefits of `Jupyter `_ integration, provided by this project.\nTo install it just type::\n\n pip install jupyter\n\n\nUsage\n-----\n\nUse as shell\n~~~~~~~~~~~~\n\nAfter instalation run in shell:\n\n::\n\n openerp_proxy\n\nAnd You will get the openerp_proxy shell. If *IPython* is installed then IPython shell\nwill be used, else usual python shell will be used. There is\n*session* variable present in locals. It is instance of `Session `_ class and\nrepresents current session and usualy is starting point of any shell work.\nSee `documentation `__ for more details\n\nNext You have to get connection to some Odoo database.\nIt is realy easy, just use `connect `_ method of session\n\n.. code:: python\n\n >>> db = session.connect()\n\nThis will ask You for host, port, database, etc to connect to\nand return `Client `_ instance\nwhich represents database connection.\n\n\nUse as library\n~~~~~~~~~~~~~~\n\nThe one diference betwen using as lib and using as shell is the way\nconnection to database is created. When using as shell the primary object\nis session, which provides some interactivity. But when using as library\nin most cases there are no need for that interactivity, so connection\nshould be created manualy, providing connection data from some other sources\nlike config file or something else.\n\nSo here is a way to create connection\n\n.. code:: python\n\n from openerp_proxy.core import Client\n db = Client(host='my_host.int',\n dbname='my_db',\n user='my_db_user',\n pwd='my_password here')\n\nAnd next all there same, no more differences betwen shell and lib usage.\n\n\nUse in Jupyter notebook\n~~~~~~~~~~~~~~~~~~~~~~~~~\n\n`Jupyter `_ integration is implemented as extension\n`openerp_proxy.ext.repr `_,\nso to use it, first, this extension should be enabled (just by importing extension).\nAs a shortcut, there is `openerp_proxy.ext.all `_ module,\nwhich imports default set of extensions, including\n`openerp_proxy.ext.repr `_ extension.\nTo better suit for HTML capable notebook You would like to use IPython's version of *session*\nobject and *openerp_proxy.ext.repr* extension.\nSo in first cell of notebook import session and extensions/plugins You want:\n\n.. code:: python\n\n # also You may import all standard extensions in one line:\n from openerp_proxy.ext.all import *\n\n # note that extensions were imported before session,\n # because some of them modify Session class\n from openerp_proxy.session import Session\n from openerp_proxy.core import Client\n\n session = Session()\n\nNow most things same as for shell usage, but...\nIn some old versions of IPython's notebook heve no patched version of *getpass* func/module,\nso if You not provide password when getting database (*connect*, *get_db* methods, You would be asked\nfor it, but this prompt will be displayed in shell where notebook server is running, not on webpage.\nTo solve this, it is recommended to uses *store_passwords* option\n\n.. code:: python\n\n session.option('store_passwords', True)\n session.save()\n\nNext use it like shell, but *do not forget to save session, after new connection*\n\n.. code:: python\n\n db = session.connect()\n session.save()\n\nor like lib\n\n.. code:: python\n\n db = Client(host='my_host.int',\n dbname='my_db',\n user='my_db_user',\n pwd='my_password here')\n\n*Note*: in old version of IPython getpass was not work correctly,\nso maybe You will need to pass password directly to *session.connect* method.\n\n\nGeneral usage\n~~~~~~~~~~~~~\n\nFor example lets try to find how many sale orders in 'done' state we have in\nour database. (Look above sections to get help on how to connect to Odoo database)\n\n.. code:: python\n\n >>> sale_order_obj = db['sale.order'] # or You may use 'db.get_obj('sale.order')' if You like\n >>>\n >>> # Now lets search for sale orders:\n >>> sale_order_obj.search([('state', '=', 'done')], count=True)\n 5\n\nSo we have 5 orders in done state. So let's read them.\n\nDefault way to read data from Odoo is to search for required records\nwith *search* method which return's list of IDs of records, then read\ndata using *read* method. Both methods mostly same as Odoo internal\nones:\n\n.. code:: python\n\n >>> sale_order_ids = sale_order_obj.search([('state', '=', 'done')])\n >>> sale_order_datas = sale_order_obj.read(sale_order_ids, ['name']) # Last argument is optional.\n # it describes list of fields to read\n # if it is not provided then all fields\n # will be read\n >>> sale_order_datas[0]\n {'id': 3,\n 'name': 'SO0004'\n }\n\nAs we see reading data in such way allows us to get list of dictionaries\nwhere each contain fields have been read\n\nAnother way to read data is to use\n`search_records `_\nor\n`read_records `_\nmethod. Each of these methods receives same aguments as ``search`` or\n``read`` method respectively. But passing ``count`` argument for\n``search\\_records`` will cause error. Main difference betwen these methods\nin using `Record `_ class\ninstead of *dict* for each record had been read. Record class provides some orm-like abilities for records,\nallowing for example access fields as attributes and provide mechanisms\nto lazily fetch related fields.\n\n.. code:: python\n\n >>> sale_orders = sale_order_obj.search_records([('state', '=', 'done')])\n >>> sale_orders[0]\n R(sale.order, 9)[SO0011]\n >>>\n >>> # So we have list of Record objects. Let's check what they are\n >>> so = sale_orders[0]\n >>> so.id\n 9\n >>> so.name\n SO0011\n >>> so.partner_id \n R(res.partner, 9)[Better Corp]\n >>>\n >>> so.partner_id.name\n Better Corp\n >>> so.partner_id.active\n True\n\n\nAdditional features\n-------------------\n\nSession: db aliases\n~~~~~~~~~~~~~~~~~~~\n\nSession provides ability to add aliases to databases, which will simplify access to them.\nFor this feature `Session `_ class\nprovides method `aliase `_ and\nproperty `aliases `_\nwhich allows to get all registered aliases in session.\nTo add aliase to our db do the folowing:\n\n.. code:: python\n\n >>> session.aliase('my_db', db)\n\nAnd now to access this database in future (even after restart)\nYou can use next code\n\n.. code:: python\n\n >>> db = session.my_db\n\nthis allows to faster get connection to database Your with which You are working very often\n\n\nSugar extension\n~~~~~~~~~~~~~~~\n\nThis extension provides some syntax sugar to ease access to objects\nTo enable it, just import `openerp_proxy.ext.sugar `_ module.\nBy default this extension will also be enabled on import of `openerp_proxy.ext.all `_\n\nSo to start use it just import this extension **just after start**\n\n.. code:: python\n\n import openerp_proxy.ext.sugar\n\nAnd after that You will have folowing features working\n\n.. code:: python\n\n db['sale.order'][5] # fetches sale order with ID=5\n db['sale_order']('0050') # result in name_search for '0050' on sale order\n # result may be Record if one record found\n # or RecordList if there some set of records found\n db['sale.order']([('state','=','done')]) # Same as 'search_records' method\n db['sale.order'](state='done') # simplified search\n\n # Automatic object aliaces. Also supports autocompletition\n # via implementation of __dir__ method\n db._sale_order == db['sale.order'] == db['sale_order'] # => True\n\n\nFor other extensions look at `openerp_proxy/ext code `_\nor `documentation `__\n\n\nSession: Start-up imports\n~~~~~~~~~~~~~~~~~~~~~~~~~\n\nIf You want some modules (extensions/plugins) to be automatiacly loaded/imported\nat start-up, there are `session.start_up_imports `_\nproperty, that points to list that holds names of modules to be imported at session creation time.\n\nFor example, if You want *Sugar extension* to be automaticaly imported, just\nadd it to ``session.start_up_imports`` list\n\n.. code:: python\n\n session.start_up_imports.append('openerp_proxy.ext.sugar')\n\nAfter this, when You will start new openerp_proxy shell, *sugar extension*\nwill be automaticaly enable.\n\n\nPlugins\n~~~~~~~\n\nIn version 0.4 plugin system was completly refactored. At this version\nwe start using `extend_me `_\nlibrary to build extensions and plugins easily.\n\nPlugins are usual classes that provides functionality that should be available\nat ``db.plugins.*`` point, implementing logic not related to core system.\n\nTo ilustrate what is plugins and what they can do we will create a simplest one.\nSo let's start\n\n1. create some directory to place plugins in:\n\n ``mkdir ~/oerp_proxy_plugins/``\n\n ``cd ~/oerp_proxy_plugins/``\n\n2. next create simple file called ``attendance.py`` and edit it\n\n ``vim attendance.py``\n\n3. write folowing code there (note that this example works and tested for Odoo version 6.0 only)\n\n ::\n\n from openerp_proxy.plugin import Plugin\n\n class AttandanceUtils(Plugin):\n\n # This is required to register Your plugin\n # *name* - is for db.plugins.\n class Meta:\n name = \"attendance\"\n\n def get_sign_state(self):\n # Note: folowing code works on version 6 of Openerp/Odoo\n emp_obj = self.client['hr.employee']\n emp_id = emp_obj.search([('user_id', '=', self.client.uid)])\n emp = emp_obj.read(emp_id, ['state'])\n return emp[0]['state']\n\n4. Now your plugin is completed, but it is not on python path.\n There is ability to add additional paths to session, so\n when session starts, ``sys.path`` will be patched with that paths.\n To add your extra path to session You need do folowing::\n\n >>> session.add_path('~/oerp_proxy_plugins/')\n >>> session.save()\n\n Now, each time session created, this path will be added to python path\n\n5. Now we cat test our plugin.\n Run ``openerp_proxy`` and try to import it::\n\n >>> #import our plugin\n >>> import attendance\n\n >>> # and use it\n >>> db = session.connect()\n >>> db.plugin.attendance.get_sign_state()\n 'present'\n\n >>> # If You want some plugins or extensions or other\n >>> # modules imported at start-up of session, do this\n >>> session.start_up_imports.add('attendance')\n\nAs You see above, to use plugin (or extension), just import it's module (better at startu-up)\n\n--------------\n\nFor more information see `source\ncode `_ or\n`documentation `__.\n\n\n", "description_content_type": "", "docs_url": "https://pythonhosted.org/openerp_proxy/", "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/katyukha/openerp-proxy", "keywords": "openerp,odoo,odoo-rpc,rpc,xmlrpc,xml-rpc,json-rpc,jsonrpc,odoo-client,ipython", "license": "GPL", "maintainer": "", "maintainer_email": "", "name": "openerp_proxy", "package_url": "https://pypi.org/project/openerp_proxy/", "platform": "", "project_url": "https://pypi.org/project/openerp_proxy/", "project_urls": { "Homepage": "https://github.com/katyukha/openerp-proxy" }, "release_url": "https://pypi.org/project/openerp_proxy/1.0.0/", "requires_dist": [ "tabulate (>=0.7.5)", "six (>=1.10)", "extend-me (>=1.1.3)", "setuptools (>=18)", "requests (>=2.7)", "ipython (>=4)", "Jinja2", "odoo-rpc-client (>=0.9.0)", "ipython[all]; extra == 'all'", "anyfield; extra == 'all'" ], "requires_python": "", "summary": "Odoo/OpenERP CLI interface and library for RPC", "version": "1.0.0" }, "last_serial": 4231515, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "0d33b258e5bd10e68cb5b3f8a2dd5c0e", "sha256": "bb1c5a30a76b5b9a2ea78103005b69b359540d55b9d393f92b2d2dd4085a774c" }, "downloads": -1, "filename": "openerp_proxy-0.1.tar.gz", "has_sig": false, "md5_digest": "0d33b258e5bd10e68cb5b3f8a2dd5c0e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14943, "upload_time": "2014-04-23T10:40:58", "url": "https://files.pythonhosted.org/packages/63/e5/ebefe45ee41ca291f454344976082ce34d547c1c3728fb784cbd9436e69f/openerp_proxy-0.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "6ab150b34cf8fb97fdd9b36332cde061", "sha256": "a64835fab19a1dea8c58218026e0943b1a5b4a2cfa284ac256e5d4c5adba1fb1" }, "downloads": -1, "filename": "openerp_proxy-0.2-py2.7.egg", "has_sig": false, "md5_digest": "6ab150b34cf8fb97fdd9b36332cde061", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 32200, "upload_time": "2014-05-12T10:52:48", "url": "https://files.pythonhosted.org/packages/e1/8f/a019cb2b341b7ae8fd89de5db1cbb03b1e5a92c3615eaf63bdfbc96daf53/openerp_proxy-0.2-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "2911ce5e19ce90435acf3472a67b9df0", "sha256": "d674f7842538291599c5e1660b228dcb42448a7a6f0496502cf538826f346c3c" }, "downloads": -1, "filename": "openerp_proxy-0.2.tar.gz", "has_sig": false, "md5_digest": "2911ce5e19ce90435acf3472a67b9df0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23176, "upload_time": "2014-05-12T10:52:45", "url": "https://files.pythonhosted.org/packages/d4/0e/b7f0856305422832bb3f89406c0afaede6c8334023d5401b579299b4ca0d/openerp_proxy-0.2.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "aecde72d955742980814698f7e560d25", "sha256": "5185aa9e6c3bdd653f152276263c209d20bdb45a20f5a3e6390061ebf19794f9" }, "downloads": -1, "filename": "openerp_proxy-0.3-py2.7.egg", "has_sig": false, "md5_digest": "aecde72d955742980814698f7e560d25", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 40162, "upload_time": "2014-06-17T10:12:05", "url": "https://files.pythonhosted.org/packages/7e/ca/4c16538751452b94b2d7a5a402644de4bf15bba02fe8c9d79ba9be9459be/openerp_proxy-0.3-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "bf1c1c4c5f301e443981c544218ff1db", "sha256": "165b38d2e74ef6e3128380b2cf96b43ec726b86bb978514257d2a7d5b8e40865" }, "downloads": -1, "filename": "openerp_proxy-0.3.tar.gz", "has_sig": false, "md5_digest": "bf1c1c4c5f301e443981c544218ff1db", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27303, "upload_time": "2014-06-17T10:11:57", "url": "https://files.pythonhosted.org/packages/ce/91/ff9a14d4f5edcac3069af4a0c80d30feedd8717543daa54a0e4ef58402e0/openerp_proxy-0.3.tar.gz" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "772d51dcf11a65cf7c631cb343f4d000", "sha256": "721fc7d9bd6fb51ff946b7feb2fc27bb661cc1156839699e375a15973d49bab6" }, "downloads": -1, "filename": "openerp_proxy-0.4.tar.gz", "has_sig": false, "md5_digest": "772d51dcf11a65cf7c631cb343f4d000", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 37806, "upload_time": "2014-10-14T12:59:05", "url": "https://files.pythonhosted.org/packages/89/94/9e303706320d50926326f2c70ba3805cf7848345d595a7fc795cbe01a1af/openerp_proxy-0.4.tar.gz" } ], "0.5": [ { "comment_text": "", "digests": { "md5": "bab8be12ac912bfe7b74e1715ff581fd", "sha256": "537aedd1c57e93e86f82ddd190e9c355dd4a3d011edbd868375683bdec7e53eb" }, "downloads": -1, "filename": "openerp_proxy-0.5.tar.gz", "has_sig": false, "md5_digest": "bab8be12ac912bfe7b74e1715ff581fd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 53056, "upload_time": "2015-02-03T12:26:42", "url": "https://files.pythonhosted.org/packages/f3/35/f9daf0faac67cf6bc5f398e15f7fcae0a1b0e7153e185c5019647e1ade02/openerp_proxy-0.5.tar.gz" } ], "0.6": [ { "comment_text": "", "digests": { "md5": "09d1d7d0fa2d24de7b10361b03934d52", "sha256": "d4c0a400e33a46fc1f9356593a50e412b3efe6fa0d54009328b8730f6c754fcf" }, "downloads": -1, "filename": "openerp_proxy-0.6-py2-none-any.whl", "has_sig": false, "md5_digest": "09d1d7d0fa2d24de7b10361b03934d52", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 64012, "upload_time": "2015-09-16T09:43:25", "url": "https://files.pythonhosted.org/packages/df/04/b59148e6bfe3375651a5db42a645adc0f83398ecb2089bddcba81efa9cba/openerp_proxy-0.6-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6c4d03bfdc294887ddffd934d274735d", "sha256": "9625b412d5d1cdee1a325d11d1af9b510bc9d21a22c79630254ef9b9de79d942" }, "downloads": -1, "filename": "openerp_proxy-0.6-py3-none-any.whl", "has_sig": false, "md5_digest": "6c4d03bfdc294887ddffd934d274735d", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 64018, "upload_time": "2015-09-16T09:44:19", "url": "https://files.pythonhosted.org/packages/4c/c6/302432f150276d99a995866b345e3f8a99a9b1bcf95d9afcfd67eb080aff/openerp_proxy-0.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b074a3df769200e7f514330320f28cb5", "sha256": "09a84159b9e246e722bbbf761d424f8fb70841f5af6e970133c09dab45ba6e1c" }, "downloads": -1, "filename": "openerp_proxy-0.6.tar.gz", "has_sig": false, "md5_digest": "b074a3df769200e7f514330320f28cb5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 65363, "upload_time": "2015-09-16T09:44:42", "url": "https://files.pythonhosted.org/packages/06/de/a493d0b098431541493770f412652da6bf444b72438b503ee56eb3d59023/openerp_proxy-0.6.tar.gz" } ], "0.6.1": [ { "comment_text": "", "digests": { "md5": "22621cee9f062691ec903e10783ad06e", "sha256": "a4ffb3543797234718cd280cbccd284bbd8247417d5cec2127185332973d763a" }, "downloads": -1, "filename": "openerp_proxy-0.6.1-py2-none-any.whl", "has_sig": false, "md5_digest": "22621cee9f062691ec903e10783ad06e", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 68767, "upload_time": "2015-10-09T09:15:56", "url": "https://files.pythonhosted.org/packages/50/8a/46d9dd1eeb3383da3e17a7f135efd0a160a45fa0bb875c0344587142f537/openerp_proxy-0.6.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "32c26771e0eed09d9145e68c939c20cb", "sha256": "e594b7c35a41eb333b27bb9d7f1a76e341bf462ed61fee0f794e40251d6afb45" }, "downloads": -1, "filename": "openerp_proxy-0.6.1-py3-none-any.whl", "has_sig": false, "md5_digest": "32c26771e0eed09d9145e68c939c20cb", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 68808, "upload_time": "2015-10-09T09:17:57", "url": "https://files.pythonhosted.org/packages/0e/e0/144e747784d1ac6688bc1025d163fc0172197511d000767e1084599f0872/openerp_proxy-0.6.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "97ebbdfd84e3d878590be9b3a3fec0f1", "sha256": "21044b01b172e11fca4913290a26796e604db74f1119ec3a4dbea1aa939739e8" }, "downloads": -1, "filename": "openerp_proxy-0.6.1.tar.gz", "has_sig": false, "md5_digest": "97ebbdfd84e3d878590be9b3a3fec0f1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 69134, "upload_time": "2015-10-09T09:15:52", "url": "https://files.pythonhosted.org/packages/09/d1/6ef4daa1b71eea9f305c4a234d4beeddbd0911c27896951ebbf6bb646ceb/openerp_proxy-0.6.1.tar.gz" } ], "0.6.2": [ { "comment_text": "", "digests": { "md5": "5059ec8cd6685cd7bfa361dc6042fe5d", "sha256": "5a74c4ca365fa5e480881f3080d5d75fb1d67e46056d328b805eeb2ca91686f3" }, "downloads": -1, "filename": "openerp_proxy-0.6.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "5059ec8cd6685cd7bfa361dc6042fe5d", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 89192, "upload_time": "2015-12-23T16:34:51", "url": "https://files.pythonhosted.org/packages/5d/2c/9d3a939e500d2766b00cf413f86eaefa15df3e1480f5891ce9f75a4a8657/openerp_proxy-0.6.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "14e3d21f69997790996aeb7bb5ba6968", "sha256": "877f5e595450c7757e8673b237becb4de2873eba9a3d5ffcacb0bf896da2a7a0" }, "downloads": -1, "filename": "openerp_proxy-0.6.2.tar.gz", "has_sig": false, "md5_digest": "14e3d21f69997790996aeb7bb5ba6968", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 85644, "upload_time": "2015-12-23T16:34:40", "url": "https://files.pythonhosted.org/packages/f3/12/9b2feaab8b8158fbc79fa5a3844dc50c2f472376f3113e666b1de5995e87/openerp_proxy-0.6.2.tar.gz" } ], "0.6.3": [ { "comment_text": "", "digests": { "md5": "c1631341c93ace0adaf5eb494dede263", "sha256": "5956de52fc9c53247545e2388ea51765b80fcd35188e13364cf96558ae962188" }, "downloads": -1, "filename": "openerp_proxy-0.6.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c1631341c93ace0adaf5eb494dede263", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 90843, "upload_time": "2016-02-06T15:35:13", "url": "https://files.pythonhosted.org/packages/25/a5/c477bc81a15bfd4513c35cbc8c37a470e4f64ca99dfc8ea70ec944e42c2b/openerp_proxy-0.6.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ed8bdb5896e25571e7b196348ac88465", "sha256": "ddc7d55d195e8b1cb1d27f26596e35d40dacd2ac73bea4070828e4bc9e138b5c" }, "downloads": -1, "filename": "openerp_proxy-0.6.3.tar.gz", "has_sig": false, "md5_digest": "ed8bdb5896e25571e7b196348ac88465", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 87486, "upload_time": "2016-02-06T15:34:55", "url": "https://files.pythonhosted.org/packages/2f/38/4a68b68468a22bb811ff380d58abbf22e75e5c9ff0963abd0c108c437ef3/openerp_proxy-0.6.3.tar.gz" } ], "0.6.4": [ { "comment_text": "", "digests": { "md5": "5d4b9086afcbfc8fd88babb9bb5838ad", "sha256": "42f1ccb65864e956d1106be2ec8a6f296e568fbc58e35c2264c5f6910feca4c9" }, "downloads": -1, "filename": "openerp_proxy-0.6.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "5d4b9086afcbfc8fd88babb9bb5838ad", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 92618, "upload_time": "2016-02-09T15:27:24", "url": "https://files.pythonhosted.org/packages/12/e4/674c6e6e25671f8a0d9f072d9e403c12636da683793c6006e7d7cffb57b0/openerp_proxy-0.6.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f72a66adefab6a0cb9cf35fc6bd5bea9", "sha256": "22fc82d23f75e9768fc03c44699bb1cabbeffc28a909d6976c2e72e7d6e26ff3" }, "downloads": -1, "filename": "openerp_proxy-0.6.4.tar.gz", "has_sig": false, "md5_digest": "f72a66adefab6a0cb9cf35fc6bd5bea9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 89703, "upload_time": "2016-02-09T15:27:14", "url": "https://files.pythonhosted.org/packages/b0/d0/e943fa15c15bb93786154c6b2cbbd1b487ba6c56e1362d0485ba65aea49e/openerp_proxy-0.6.4.tar.gz" } ], "0.6.5": [ { "comment_text": "", "digests": { "md5": "9c378e2dcfa26ef19e5a35bdbf804df7", "sha256": "c3745148d35558cfdf35c2e044554a3cbca8a40cb5341786c15edfa5c8fbffdc" }, "downloads": -1, "filename": "openerp_proxy-0.6.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "9c378e2dcfa26ef19e5a35bdbf804df7", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 98312, "upload_time": "2016-03-10T15:08:01", "url": "https://files.pythonhosted.org/packages/bc/f2/b5c78e946da4b0aa2dc543fb398fff63d827a1f44f08670c3432bc263dc7/openerp_proxy-0.6.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5798791b0045a761866c6756724223e8", "sha256": "f95b5f6f670720cd033ee19d161dca03c6cfb55d84e805217ae0d344eb552035" }, "downloads": -1, "filename": "openerp_proxy-0.6.5.tar.gz", "has_sig": false, "md5_digest": "5798791b0045a761866c6756724223e8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 93705, "upload_time": "2016-03-10T15:07:34", "url": "https://files.pythonhosted.org/packages/b8/2a/8c8143fb9fa132f31867a1cc85bd92586dbc9fa6c3621abaa9b2dccb1d90/openerp_proxy-0.6.5.tar.gz" } ], "0.6.6": [ { "comment_text": "", "digests": { "md5": "c9a4180f2f95790acc164ec7c9da9e10", "sha256": "5f850eb5abe31552a43ea2c4d434230e1e80e7ee05308a89ead44b49f143802f" }, "downloads": -1, "filename": "openerp_proxy-0.6.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c9a4180f2f95790acc164ec7c9da9e10", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 99563, "upload_time": "2016-03-23T10:54:51", "url": "https://files.pythonhosted.org/packages/5c/77/2977e06c088b926f014afc697a7173c5b45527abf01cb4ea8c6b096a0294/openerp_proxy-0.6.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2d27f68f4e4269b01d0c401bc3235d79", "sha256": "56ecea7f6dffee1106f2891f315bc4141519f06cc623f1624c35d8180c239257" }, "downloads": -1, "filename": "openerp_proxy-0.6.6.tar.gz", "has_sig": false, "md5_digest": "2d27f68f4e4269b01d0c401bc3235d79", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 94682, "upload_time": "2016-03-23T10:54:35", "url": "https://files.pythonhosted.org/packages/9c/b6/8635a14acca446b1f8ecae9ff9c487967678becb505d1f20ce529c4d3695/openerp_proxy-0.6.6.tar.gz" } ], "0.6.7": [ { "comment_text": "", "digests": { "md5": "2c053e27b818f1b3d99066a3f63450ad", "sha256": "c1855d9e0d31e2b727e57a8c525005b88fde0e21402f44a3822e1b16566fe5c1" }, "downloads": -1, "filename": "openerp_proxy-0.6.7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2c053e27b818f1b3d99066a3f63450ad", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 101844, "upload_time": "2016-04-11T10:40:41", "url": "https://files.pythonhosted.org/packages/03/10/1c08dd11370ddb5eb9be4c9fe7f048084d10928326808f9d5e4afde82d1b/openerp_proxy-0.6.7-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4320c75f2f3e9d344504374fef805025", "sha256": "f9636a7540ddc3984ca7e393142bc49514afea9c4c9396c036e14d1ecdcb2291" }, "downloads": -1, "filename": "openerp_proxy-0.6.7.tar.gz", "has_sig": false, "md5_digest": "4320c75f2f3e9d344504374fef805025", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 95767, "upload_time": "2016-04-11T10:40:29", "url": "https://files.pythonhosted.org/packages/54/62/d732d77d17b90207c7c9828735da9a4706a962c8fae4ec631b6f7b9df109/openerp_proxy-0.6.7.tar.gz" } ], "0.6.8": [ { "comment_text": "", "digests": { "md5": "5b6fc6f6ec70128f5df8a1f055123fa5", "sha256": "0cf82f4e398175a86892380d8f4d8079ec62981e9817d5b1f0b23aa526451541" }, "downloads": -1, "filename": "openerp_proxy-0.6.8-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "5b6fc6f6ec70128f5df8a1f055123fa5", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 103216, "upload_time": "2016-04-26T16:07:00", "url": "https://files.pythonhosted.org/packages/d5/fc/ef0bafa1b89ff4e252701e92fd5d89dc7a00684a59c5ec3999172949c89b/openerp_proxy-0.6.8-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4dc499ccffa8e57ccec56d3cfcaff533", "sha256": "86db3a3a9a200667900fb00bc0b3f37afba36f9e20d985877ec462d68d629fe5" }, "downloads": -1, "filename": "openerp_proxy-0.6.8.tar.gz", "has_sig": false, "md5_digest": "4dc499ccffa8e57ccec56d3cfcaff533", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 97532, "upload_time": "2016-04-26T16:06:36", "url": "https://files.pythonhosted.org/packages/46/45/f0a4f519c91e75b5bf2135638c83047b0885673613e67a1aa2a331e147a0/openerp_proxy-0.6.8.tar.gz" } ], "0.6.9": [ { "comment_text": "", "digests": { "md5": "af21d4584c4e2543050dbc78cbf3e083", "sha256": "28089851e91fee88487d74f8cd72a6e4bd97ce157068b967faf92f2dc0ae5f70" }, "downloads": -1, "filename": "openerp_proxy-0.6.9-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "af21d4584c4e2543050dbc78cbf3e083", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 104514, "upload_time": "2016-06-06T12:12:18", "url": "https://files.pythonhosted.org/packages/78/21/45c6e15b56df70cc90d59475b776d31289727febf635a0e3df534e87bf65/openerp_proxy-0.6.9-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d537d1aef8410f39aad717f43597693f", "sha256": "891c15ab49a4c7c82e6c11416ea5fe9c443d665f62d40fbc119865cb1cb03f18" }, "downloads": -1, "filename": "openerp_proxy-0.6.9.tar.gz", "has_sig": false, "md5_digest": "d537d1aef8410f39aad717f43597693f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 99098, "upload_time": "2016-06-06T12:12:13", "url": "https://files.pythonhosted.org/packages/4e/fd/ebdac7e0915f199f9f004419ee53681964bb4f8c544c14c4654478fec386/openerp_proxy-0.6.9.tar.gz" } ], "0.7.0": [ { "comment_text": "", "digests": { "md5": "55cfe5f8972ecdd50c37e07508abdc20", "sha256": "2b6b1dee996a6380c5a60ec8eef59fb4532e7898d9c9959acf8c8715920a652a" }, "downloads": -1, "filename": "openerp_proxy-0.7.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "55cfe5f8972ecdd50c37e07508abdc20", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 112283, "upload_time": "2016-10-07T10:05:25", "url": "https://files.pythonhosted.org/packages/9e/16/e209a8543a092624d32fbe0981b07f26b6b590cf3304ffe21a41ab3bebb2/openerp_proxy-0.7.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "169a50fd916a4594b9a3fd761396c17d", "sha256": "7c16be46e678800a2e79206dc8e9fba802bc9876f880b6378708a0b6327b95a7" }, "downloads": -1, "filename": "openerp_proxy-0.7.0.tar.gz", "has_sig": false, "md5_digest": "169a50fd916a4594b9a3fd761396c17d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 106858, "upload_time": "2016-10-07T10:05:21", "url": "https://files.pythonhosted.org/packages/1b/4f/99e67c1e79bc42ac91294e500c89690e42d5b56a669b7aa68e9ade18a1ed/openerp_proxy-0.7.0.tar.gz" } ], "0.7.1": [ { "comment_text": "", "digests": { "md5": "ecadf3642ffb6e5fa3bd171832e4efc0", "sha256": "e1d482c38a732c1e4fa26952792f175a84185557da8d2dcdee63791b06b99401" }, "downloads": -1, "filename": "openerp_proxy-0.7.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ecadf3642ffb6e5fa3bd171832e4efc0", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 112735, "upload_time": "2016-12-09T14:02:33", "url": "https://files.pythonhosted.org/packages/1a/9d/5df4596180d18c21125044d98905e3a9b8e8a29a5dc26995b40a2812ab81/openerp_proxy-0.7.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cf2d053a2cf3ca152c2b8e06d173a598", "sha256": "df7a60e4163809d6866d503c30af0e758ecd88e18d6a9fe604be10ef10c3c947" }, "downloads": -1, "filename": "openerp_proxy-0.7.1.tar.gz", "has_sig": false, "md5_digest": "cf2d053a2cf3ca152c2b8e06d173a598", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 107478, "upload_time": "2016-12-09T14:02:30", "url": "https://files.pythonhosted.org/packages/d8/7f/6fc35467720d9d3c6118a3692a2141d248bac87f18dbf380ec9b81454969/openerp_proxy-0.7.1.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "4078f64bceca851768bd0ffcbed1498b", "sha256": "568c34f9110431619477dbf26647895811bc21de62b2fbde857063551041666b" }, "downloads": -1, "filename": "openerp_proxy-1.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4078f64bceca851768bd0ffcbed1498b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 72925, "upload_time": "2018-09-02T16:50:53", "url": "https://files.pythonhosted.org/packages/82/67/67f997b22aaaff8deec8210d67029511216b489068a52981f5e47a527bb2/openerp_proxy-1.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a539fdac4d8c0a5a382682c6c60ce1dc", "sha256": "4b2fe6302fe125fca3fbdda29076093dfda1848fa7014af44ea6e511bc61e23c" }, "downloads": -1, "filename": "openerp_proxy-1.0.0.tar.gz", "has_sig": false, "md5_digest": "a539fdac4d8c0a5a382682c6c60ce1dc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 80465, "upload_time": "2018-09-02T16:50:55", "url": "https://files.pythonhosted.org/packages/01/e4/0922c5a5a248cf4b5ae65a0ace9ca646e125feacb275473b2214d5638398/openerp_proxy-1.0.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "4078f64bceca851768bd0ffcbed1498b", "sha256": "568c34f9110431619477dbf26647895811bc21de62b2fbde857063551041666b" }, "downloads": -1, "filename": "openerp_proxy-1.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4078f64bceca851768bd0ffcbed1498b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 72925, "upload_time": "2018-09-02T16:50:53", "url": "https://files.pythonhosted.org/packages/82/67/67f997b22aaaff8deec8210d67029511216b489068a52981f5e47a527bb2/openerp_proxy-1.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a539fdac4d8c0a5a382682c6c60ce1dc", "sha256": "4b2fe6302fe125fca3fbdda29076093dfda1848fa7014af44ea6e511bc61e23c" }, "downloads": -1, "filename": "openerp_proxy-1.0.0.tar.gz", "has_sig": false, "md5_digest": "a539fdac4d8c0a5a382682c6c60ce1dc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 80465, "upload_time": "2018-09-02T16:50:55", "url": "https://files.pythonhosted.org/packages/01/e4/0922c5a5a248cf4b5ae65a0ace9ca646e125feacb275473b2214d5638398/openerp_proxy-1.0.0.tar.gz" } ] }