changeset 6ce397828e98 in proteus:default
details: https://hg.tryton.org/proteus?cmd=changeset;node=6ce397828e98
description:
Merge README and doc and remove INSTALL
issue7397
review253271002
diffstat:
INSTALL | 27 ----------
MANIFEST.in | 8 +-
README | 152 ----------------------------------------------------------
README.rst | 1 +
doc/index.rst | 126 +++++++++++++++++++++++++++++++++++++++++++++++-
setup.py | 8 ++-
6 files changed, 137 insertions(+), 185 deletions(-)
diffs (358 lines):
diff -r c7e5f196e4e2 -r 6ce397828e98 INSTALL
--- a/INSTALL Sun Mar 31 00:15:10 2019 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +0,0 @@
-Installing proteus
-==================
-
-Prerequisites
--------------
-
- * Python 3.4 or later (http://www.python.org/)
- * python-dateutil (http://labix.org/python-dateutil)
- * Optional: trytond (http://www.tryton.org/)
-
-Installation
-------------
-
-Once you've downloaded and unpacked the proteus source release, enter the
-directory where the archive was unpacked, and run:
-
- python setup.py install
-
-Note that you may need administrator/root privileges for this step, as
-this command will by default attempt to install module to the Python
-site-packages directory on your system.
-
-For advanced options, please refer to the easy_install and/or the distutils
-documentation:
-
- http://setuptools.readthedocs.io/en/latest/easy_install.html
- http://docs.python.org/inst/inst.html
diff -r c7e5f196e4e2 -r 6ce397828e98 MANIFEST.in
--- a/MANIFEST.in Sun Mar 31 00:15:10 2019 +0100
+++ b/MANIFEST.in Sat Apr 06 17:38:58 2019 +0200
@@ -1,5 +1,5 @@
-include LICENSE
+include CHANGELOG
include COPYRIGHT
-include README
-include INSTALL
-include CHANGELOG
+include LICENSE
+include README.rst
+include doc/*
diff -r c7e5f196e4e2 -r 6ce397828e98 README
--- a/README Sun Mar 31 00:15:10 2019 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,152 +0,0 @@
-proteus
-=======
-
-A library to access Tryton's models like a client.
-
-Installing
-----------
-
-See INSTALL
-
-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:')
-
-Installing 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 instanciate 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(zip='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(zip='69')
- >>> party.save()
- >>> address = party.addresses.new(zip='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
-
-Support
--------
-
-If you encounter any problems with Tryton, please don't hesitate to ask
-questions on the Tryton forum or IRC channel:
-
- http://www.tryton.org/forum
-
-License
--------
-
-See LICENSE
-
-Copyright
----------
-
-See COPYRIGHT
-
-
-For more information please visit the Tryton web site:
-
- http://www.tryton.org/
diff -r c7e5f196e4e2 -r 6ce397828e98 README.rst
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/README.rst Sat Apr 06 17:38:58 2019 +0200
@@ -0,0 +1,1 @@
+doc/index.rst
\ No newline at end of file
diff -r c7e5f196e4e2 -r 6ce397828e98 doc/index.rst
--- a/doc/index.rst Sun Mar 31 00:15:10 2019 +0100
+++ b/doc/index.rst Sat Apr 06 17:38:58 2019 +0200
@@ -1,1 +1,125 @@
-.. include:: ../README
+=======================
+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:')
+
+Installing 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 instanciate 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(zip='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(zip='69')
+ >>> party.save()
+ >>> address = party.addresses.new(zip='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
diff -r c7e5f196e4e2 -r 6ce397828e98 setup.py
--- a/setup.py Sun Mar 31 00:15:10 2019 +0100
+++ b/setup.py Sat Apr 06 17:38:58 2019 +0200
@@ -48,11 +48,17 @@
setup(name=name,
version=version,
description='Library to access Tryton server as a client',
- long_description=read('README'),
+ long_description=read('README.rst'),
author='Tryton',
author_email='[email protected]',
url='http://www.tryton.org/',
download_url=download_url,
+ project_urls={
+ "Bug Tracker": 'https://bugs.tryton.org/',
+ "Documentation": 'https://docs.tryton.org/',
+ "Forum": 'https://www.tryton.org/forum',
+ "Source Code": 'https://hg.tryton.org/proteus',
+ },
keywords='tryton library cli',
packages=find_packages(),
classifiers=[