An assistant to determine if all your dependencies are declared properly in your odoo module.
Candyshop is a helper to determine if all your dependencies are declared properly. A Candyshop is a place where you can pick sweets and candies from a list of wonderful options, but choose wisely.
For more information, please read the full documentation.
- Access an Odoo Module as an object abstraction.
- Get all module references from all xml files of a module.
- Generate and clone the dependency tree of a group of modules (bundle).
- Generate a virtual enviroment where you can add group of modules.
- Determine which Odoo Modules declare a dependency to another module that is not present in the environment.
- Determine which XML files make reference to an Odoo Module that is not present in the environment.
The candyshop
program is written in python and hosted on PyPI. Therefore, you can use
pip to install the stable version:
$ pip install --upgrade candyshop
If you want to install the development version (not recomended), you can install directlty from GitHub like this:
$ pip install --upgrade https://github.com/CollageLabs/candyshop/archive/master.tar.gz
Here you can consult practical uses for some of the Candyshop functions. For a more detailed review on what you can do with it, we recommend you to read the api documentation.
The Module
class is an abstraction of an Odoo Module. You can perform
several operations to access the module information:
from candyshop.bundle import Module # Create a Module instance module = Module('path/to/module') # Query for data print(module.path) print(module.manifest) # Query information in manifest file print(module.properties.name) print(module.properties.version) print(module.properties.depends)
The Bundle
class is an abstraction of a Group of modules, often referred
to as Addons. Here you can see how to interact with a bundle:
from candyshop.bundle import Bundle # Create a Bundle instance bundle = Bundle('path/to/bundle') # Query for data print(bundle.name) print(bundle.path) print(bundle.modules) print(bundle.oca_dependencies)
The Environment
class is an abstraction of a virtual Odoo Environment.
Think of it as an imaginary container inside of which you can add Bundles
and ask for specific information about them. For example:
from candyshop.environment import Environment # Create an Environment env = Environment() # Insert bundles # If any bundle has an oca_dependencies.txt file, # clone its dependencies and insert them as bundles env.addbundles(['./path-to-bundle', '../addons', '../etc']) # Make a report about dependencies that are not present in # the environment env.get_notmet_dependencies_report() # Make a report about record ids that reference modules # which are not present in the environment env.get_notmet_record_ids_report()
If you have any doubts or problems, suscribe to our Gitter Chat and ask for help. You can also
ask your question on StackOverflow (tag it pypicontents
) or drop me an email at luis@collagelabs.org.
See CONTRIBUTING.rst for details.
See HISTORY.rst for details.
Copyright 2016-2017, Candyshop Developers (read AUTHORS.rst for a full list of copyright holders).
Released under a GPL-3 License (read COPYING.rst for license details).
Web collagelabs.org · GitHub @CollageLabs · Twitter @CollageLabs