Skip to main content

Candyshop is a helper to determine if all your dependencies are declared properly.

Project description
An assistant to determine if all your dependencies are declared properly in your odoo module.
PyPI Package Travis CI Coveralls Code Climate Updates Read The Docs Contributor License Agreement Gitter Chat

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.

Getting started


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


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

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

# Query information in manifest file

The Bundle class

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

The Environment class

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

# Make a report about record ids that reference modules
# which are not present in the environment

Getting help

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


See CONTRIBUTING.rst for details.

Release history

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).

Made with :heart: and :hamburger:

Web · GitHub @CollageLabs · Twitter @CollageLabs

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for candyshop, version 0.1.6
Filename, size File type Python version Upload date Hashes
Filename, size candyshop-0.1.6.tar.gz (380.3 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page