Skip to main content

Tryton Scripting Client

A library to access Tryton’s models like a client.

Example of usage

>>> from proteus import config, Model, Wizard, Report

Configuration

Configuration to connect to a sqlite memory database using trytond as module.

>>> config = config.set_trytond('sqlite:///:memory:')

There is also the config.set_xmlrpc method which can be used to connect using a URL, and the config.set_xmlrpc_session method (when used as a context manager) which connects for a session.

Activating a module

Find the module, call the activate button and run the upgrade wizard.

>>> Module = Model.get('ir.module')
>>> party_module, = Module.find([('name', '=', 'party')])
>>> party_module.click('activate')
>>> Wizard('ir.module.activate_upgrade').execute('upgrade')

Creating a party

First instantiate a new Party:

>>> Party = Model.get('party.party')
>>> party = Party()
>>> party.id < 0
True

Fill the fields:

>>> party.name = 'ham'

Save the instance into the server:

>>> party.save()
>>> party.name
'ham'
>>> party.id > 0
True

Setting the language of the party

The language on party is a Many2One relation field. So it requires to get a Model instance as value.

>>> Lang = Model.get('ir.lang')
>>> en, = Lang.find([('code', '=', 'en')])
>>> party.lang = en
>>> party.save()
>>> party.lang.code
'en'

Creating an address for the party

Addresses are store on party with a One2Many field. So the new address just needs to be appended to the list addresses.

>>> address = party.addresses.new(postal_code='42')
>>> party.save()
>>> party.addresses #doctest: +ELLIPSIS
[proteus.Model.get('party.address')(...)]

Adding category to the party

Categories are linked to party with a Many2Many field.

So first create a category

>>> Category = Model.get('party.category')
>>> category = Category()
>>> category.name = 'spam'
>>> category.save()

Append it to categories of the party

>>> party.categories.append(category)
>>> party.save()
>>> party.categories #doctest: +ELLIPSIS
[proteus.Model.get('party.category')(...)]

Print party label

There is a label report on Party.

>>> label = Report('party.label')

The report is executed with a list of records and some extra data.

>>> type_, data, print_, name = label.execute([party], {})

Sorting addresses and register order

Addresses are ordered by sequence which means they can be stored following a specific order. The set_sequence method stores the current order.

>>> address = party.addresses.new(postal_code='69')
>>> party.save()
>>> address = party.addresses.new(postal_code='23')
>>> party.save()

Now changing the order.

>>> reversed_addresses = list(reversed(party.addresses))
>>> while party.addresses:
...     _ = party.addresses.pop()
>>> party.addresses.extend(reversed_addresses)
>>> party.addresses.set_sequence()
>>> party.save()
>>> party.addresses == reversed_addresses
True

Setting context

Make French translatable:

>>> Language = Model.get('ir.lang')
>>> french, = Language.find([('code', '=', 'fr')])
>>> french.translatable = True
>>> french.save()

Create a category in English:

>>> Category = Model.get('party.category')
>>> with config.set_context(language='en'):
...     category = Category(name="Category")
...     category.save()

Translate in French:

>>> with config.set_context(language='fr'):
...     category_fr = Category(category.id)
...     category_fr.name = "Categorie"
...     category_fr.save()

Read in English:

>>> category.reload()
>>> category.name
'Category'

Read in French:

>>> category_fr.reload()
>>> category_fr.name
'Categorie'

Metadata

Release files for proteus 8.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for proteus 8.2.0
File Size Uploaded
proteus-8.2.0.tar.gz 36.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for proteus 8.2.0
File Interpreter ABI Platform
proteus-8.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 78.2 kB

Release files / proteus-8.2.0.tar.gz

Download URL proteus-8.2.0.tar.gz
Size 36.5 kB
Tags Source
SHA-256 checksum
How to use checksums
4558edb6b657f5f4106ef2dbc3c31a0db6e3cd1ac974772c2efe88a88227f9f6
BLAKE2b-256 checksum
How to use checksums
3f541e34d9258780e7a93d9a7bab4aaf171e0dbc75fb4b5582815b24aa7b32f3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release files / proteus-8.2.0-py3-none-any.whl

Download URL proteus-8.2.0-py3-none-any.whl
Size 41.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9565875916e5624291b1e4e9ce2df835d5d420c192adfd589eb9afde57f8447e
BLAKE2b-256 checksum
How to use checksums
c87d425e4c5442eb349abb4540046bda65fd3aeba66b272cd11d9833431d949e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release history Release notifications | RSS feed

This release

8.2.0 This release

2 release files

8.0.0

2 release files

7.8.0

2 release files

7.6.2

2 release files

7.6.1

2 release files

7.6.0

2 release files

7.4.3

2 release files

7.4.2

2 release files

7.4.1

2 release files

7.4.0

2 release files

7.2.1

2 release files

7.2.0

2 release files

7.0.3

2 release files

7.0.2

2 release files

7.0.1

2 release files

7.0.0

2 release files

6.8.1

2 release files

6.8.0

2 release files

6.6.2

2 release files

6.6.1

2 release files

6.6.0

2 release files

6.4.2

2 release files

6.4.1

2 release files

6.4.0

2 release files

6.2.4

2 release files

6.2.3

2 release files

6.2.2

2 release files

6.2.1

2 release files

6.2.0

2 release files

6.0.10

2 release files

6.0.9

2 release files

6.0.8

2 release files

6.0.7

2 release files

6.0.6

2 release files

6.0.5

2 release files

6.0.4

2 release files

6.0.3

2 release files

6.0.2

2 release files

6.0.1

2 release files

6.0.0

2 release files

5.8.3

2 release files

5.8.2

2 release files

5.8.1

2 release files

5.8.0

2 release files

5.6.2

2 release files

5.6.1

2 release files

5.6.0

2 release files

5.4.2

2 release files

5.4.1

2 release files

5.4.0

2 release files

5.2.4

2 release files

5.2.3

2 release files

5.2.2

2 release files

5.2.1

2 release files

5.2.0

2 release files

5.0.14

2 release files

5.0.13

2 release files

5.0.11

2 release files

5.0.9

2 release files

5.0.8

2 release files

5.0.7

2 release files

5.0.6

2 release files

5.0.5

2 release files

5.0.4

2 release files

5.0.3

2 release files

5.0.2

2 release files

5.0.1

2 release files

5.0.0

2 release files

4.8.8

3 release files

4.8.7

3 release files

4.8.6

3 release files

4.8.5

3 release files

4.8.4

3 release files

4.8.3

3 release files

4.8.2

3 release files

4.8.1

3 release files

4.8.0

3 release files

4.6.9

3 release files

4.6.8

3 release files

4.6.7

3 release files

4.6.6

3 release files

4.6.5

3 release files

4.6.4

3 release files

4.6.3

3 release files

4.6.2

3 release files

4.6.1

3 release files

4.6.0

3 release files

4.4.9

3 release files

4.4.8

3 release files

4.4.7

3 release files

4.4.6

3 release files

4.4.5

3 release files

4.4.4

3 release files

4.4.3

3 release files

4.4.2

3 release files

4.4.1

3 release files

4.4.0

3 release files

4.2.6

3 release files

4.2.5

3 release files

4.2.4

3 release files

4.2.3

3 release files

4.2.2

3 release files

4.2.1

3 release files

4.2.0

3 release files

4.0.7

3 release files

4.0.6

3 release files

4.0.5

3 release files

4.0.4

3 release files

4.0.3

3 release files

4.0.2

3 release files

4.0.1

3 release files

4.0.0

1 release file

3.8.7

2 release files

3.8.6

2 release files

3.8.5

2 release files

3.8.4

2 release files

3.8.3

2 release files

3.8.2

2 release files

3.8.1

1 release file

3.8.0

1 release file

3.6.7

2 release files

3.6.6

2 release files

3.6.5

2 release files

3.6.4

2 release files

3.6.3

1 release file

3.6.2

1 release file

3.6.1

1 release file

3.6.0

1 release file

3.4.8

2 release files

3.4.7

2 release files

3.4.6

2 release files

3.4.5

1 release file

3.4.4

1 release file

3.4.3

1 release file

3.4.2

1 release file

3.4.1

1 release file

3.4.0

1 release file

3.2.9

2 release files

3.2.8

2 release files

3.2.7

2 release files

3.2.6

1 release file

3.2.5

1 release file

3.2.4

1 release file

3.2.3

1 release file

3.2.2

1 release file

3.2.1

1 release file

3.2.0

1 release file

3.0.6

2 release files

3.0.5

1 release file

3.0.4

1 release file

3.0.3

1 release file

3.0.2

1 release file

3.0.1

1 release file

3.0.0

1 release file

2.8.5

1 release file

2.8.4

1 release file

2.8.3

1 release file

2.8.2

1 release file

2.8.1

1 release file

2.8.0

1 release file

2.6.5

1 release file

2.6.4

1 release file

2.6.3

1 release file

2.6.2

1 release file

2.6.1

1 release file

2.6.0

1 release file

2.4.4

1 release file

2.4.3

1 release file

2.4.2

1 release file

2.4.1

1 release file

2.4.0

1 release file

2.2.4

1 release file

2.2.3

1 release file

2.2.2

1 release file

2.2.1

1 release file

2.2.0

1 release file

2.0.4

1 release file

2.0.3

1 release file

2.0.2

1 release file

2.0.1

1 release file

2.0.0

1 release file

1.8.5

1 release file

1.8.4

1 release file

1.8.3

1 release file

1.8.2

1 release file

1.8.1

1 release file

1.8.0

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page