Bumper Cars

class bumper.cars.AbstractBumper(target, detail=False, test_drive=False)[source]

Abstract implementation for all bumper cars

Parameters:
  • target (str) – Path to a target file to bump.
  • detail (bool) – Generate detailed changes from changelog if possible.
  • test_drive (bool) – Perform a dry run
all_package_versions(name)[source]

List of all versions, in descending order, for the given package name.

bump(bump_reqs=None, **kwargs)[source]

Bump dependencies using given requirements.

Parameters:
  • bump_reqs (RequirementsManager) – Bump requirements manager
  • kwargs (dict) – Additional args from argparse. Some bumpers accept user options, and some not.
Returns:

List of Bump changes made.

classmethod bump_message(bumps, include_changes=False)[source]

Compose a bump message for the given bumps

Parameters:
  • bumps (list) – List of Bump instances
  • include_changes (bool) – Indicate if the message should include detailed changes.
latest_package_version(name)[source]

Latest version for the given package name.

classmethod likes(target)[source]

Check if this bumper likes the target.

package_changes(name, current_version, new_version)[source]

List of changes for package name from current_version to new_version, in descending order. If current version is higher than new version (downgrade), then a minus sign will be prefixed to each change.

requirements()[source]

Return a list of existing requirements (as pkg_resources.Requirement)

classmethod requirements_for_changes(changes)[source]

Parse changes for requirements

Parameters:changes (list) –
reverse()[source]

Restore content in target file to be before any changes

should_pin()[source]

Should requirement be pinned? This should be True for leaf products.

update_requirements()[source]

Update/persist requirements from self.bumps

class bumper.cars.Bump(name, new_version=None, changes=None, requirements=None)[source]

A change made in a target file.

Parameters:
  • name (str) – Name of the product/library that was bumped
  • new_version (tuple) – New version that was bumped to in (op, version) format.
  • changes (list) – Detailed changelog entries from the old version to the new version
  • requirements (str|list) – Any requirements that must be fulfilled for this bump to occur.
as_requirement()[source]

Convert back to a pkg_resources.Requirement instance

classmethod from_requirement(req, changes=None)[source]

Create an instance from pkg_resources.Requirement instance

require(req)[source]

Add new requirements that must be fulfilled for this bump to occur

exception bumper.cars.BumpAccident[source]

Exception for any bump errors

class bumper.cars.BumpRequirement(req, required=False)[source]

A single requirement to be bumped or filtered. It is a wrapper on top of pkg_resources.Requirement.

Parameters:
  • req (pkg_resources.Requirement) –
  • required (bool) – Is this requirement required to be fulfilled? If not, then it is a filter.
classmethod parse(s, required=False)[source]

Parse string to create an instance

Parameters:
  • s (str) – String with requirement to parse
  • required (bool) – Is this requirement required to be fulfilled? If not, then it is a filter.
class bumper.cars.RequirementsBumper(target, detail=False, test_drive=False)[source]

Bumper for requirements.txt or pinned.txt

latest_package_version(name)[source]

Latest version for package

should_add(name)[source]

Should this bumper try to add the given name if requested.

class bumper.cars.RequirementsManager(requirements=None)[source]

Manage a list of BumpRequirement

Parameters:requirements (list) – List of requirements to manage
add(requirements, required=None)[source]

Add requirements to be managed

Parameters:
  • requirements (list/Requirement) – List of BumpRequirement or pkg_resources.Requirement
  • required (bool) – Set required flag for each requirement if provided.
check(context, version=None)[source]

Check off requirements that are met by name/version.

Parameters:context (str|Bump|Requirement) – Either package name, requirement string, Bump, BumpRequirement, or :class:`pkg_resources.Requirement instance
Returns:True if any requirement was satisified by context
satisfied_by_checked(req)[source]

Check if requirement is already satisfied by what was previously checked

Parameters:req (Requirement) – Requirement to check