Skip to main content

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.0.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.0.0
File Size Uploaded
proteus-8.0.0.tar.gz 36.4 kB Details

Built distribution (wheel)

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

Total release size: 77.9 kB

Release files / proteus-8.0.0.tar.gz

Download URL proteus-8.0.0.tar.gz
Size 36.4 kB
Tags Source
SHA-256 checksum
How to use checksums
bc68390060af1b240dea1492f4bb31cb0a19ad692e93f909b0adcd9131332eb7
BLAKE2b-256 checksum
How to use checksums
f6fb636aaf1267ed47bdfec2a0c6853494cdecd079dadccaa32d43fbbdab2a91
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.12

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

Download URL proteus-8.0.0-py3-none-any.whl
Size 41.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
12c9a9f080fffca0f83b866cb0072a65deabdd5c69669f8c4ae902394db71260
BLAKE2b-256 checksum
How to use checksums
5c1ae097d122f56bbfa3fff3ebbb1b4f27227dc72bcf115138aefa2ef67e360a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.12

Release history Release notifications | RSS feed

This release

8.0.0 This release

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