Exemple #1
0
    def __init__(self, path, data=None):
        """
        Load and parse the given XPD
        """

        # Save path
        self.path = path

        # Load our data
        if data is None:
            self._data = util.load_xpd(path)
        else:
            self._data = data

        # Read fields and define properties
        self.name = self._data['name']
        self.version = self._data['version']
        self.dependencies = self._data.get('dependencies', [])
        self.build_dependencies = self._data.get('build-dependencies', [])
        self.description = self._data.get('description', '')
Exemple #2
0
    def __init__(self, path, data=None):
        """
        Load and parse the given XPD
        """

        # Save path
        self.path = path

        # Load our data
        if data is None:
            self._data = util.load_xpd(path)
        else:
            self._data = data

        # Read fields and define properties
        self.name = self._data['name']
        self.version = self._data['version']
        self.dependencies = self._data.get('dependencies', [])
        self.build_dependencies = self._data.get('build-dependencies', [])
        self.description = self._data.get('description', '')
Exemple #3
0
    def _load_package_info(self, input_val):
        """
        Gets all the package info based on the input value, which can be an
        the path to a XPD, or XPA file, or package==version string.
        """

        # Get all name version pairs from the input
        packages = []

        if input_val.endswith('.xpa'):
            # Grab the name out of the XPA metadata
            xpa = XPA(input_val)

            name = xpa.info['name']
            version = xpa.info['version']

            packages.append((name, version))
        elif input_val.endswith('.xpd'):
            # Path is an xpd file load that then install
            xpd_data = util.load_xpd(input_val)

            # Check for all those package combinations
            if 'packages' in xpd_data:
                for name, data in xpd_data['packages'].iteritems():
                    # Default to main version if one doesn't exist
                    if data:
                        version = data.get('version', xpd_data['version'])
                    else:
                        version = xpd_data['version']
                    packages.append((name, version))
            else:
                packages.append((xpd_data['name'], xpd_data['version']))
        else:
            # The input_val must be a package name so try to find the xpd
            # so first try to find the package in a pre-compile manner
            name, version = self._parse_install_input(input_val)

            packages.append((name, version))

        return packages
Exemple #4
0
    def _load_package_info(self, input_val):
        """
        Gets all the package info based on the input value, which can be an
        the path to a XPD, or XPA file, or package==version string.
        """

        # Get all name version pairs from the input
        packages = []

        if input_val.endswith('.xpa'):
            # Grab the name out of the XPA metadata
            xpa = XPA(input_val)

            name = xpa.info['name']
            version = xpa.info['version']

            packages.append((name, version))
        elif input_val.endswith('.xpd'):
            # Path is an xpd file load that then install
            xpd_data = util.load_xpd(input_val)

            # Check for all those package combinations
            if 'packages' in xpd_data:
                for name, data in xpd_data['packages'].iteritems():
                    # Default to main version if one doesn't exist
                    if data:
                        version = data.get('version', xpd_data['version'])
                    else:
                        version = xpd_data['version']
                    packages.append((name, version))
            else:
                packages.append((xpd_data['name'], xpd_data['version']))
        else:
            # The input_val must be a package name so try to find the xpd
            # so first try to find the package in a pre-compile manner
            name, version = self._parse_install_input(input_val)

            packages.append((name, version))

        return packages