Skip to main content

manipulation of Debian package control files

Project description

Debmutate is a set of Python modules for manipulating the control files of Debian packages, with the ability to preserve the existing formatting of the control files.

It’s built on top of the excellent [python-debian](https://salsa.debian.org/python-debian-team/python-debian) library, and was originally extracted from [lintian-brush](https://salsa.debian.org/jelmer/lintian-brush).

To modify one of the control files, use one of the context managers to edit the file.

For example, for debian/control:

from debmutate.control import ControlEditor

with ControlEditor(path='debian/control') as control:
    print(control.source['Maintainer'])
    control.source['Maintainer'] = "Jelmer Vernooij <jelmer@debian.org>"

Or for debian/changelog:

 from debmutate.changelog import ChangelogEditor

with ChangelogEditor(path='debian/changelog') as editor:
    editor.add_entry(['Some entry'])

Once you leave the context manager, the changes will be written to disk if there were any. If the editor is unable to preserve the formatting of the control file, it will raise a FormattingUnpreservable error.

If the control file that was edited was generated from another control file (e.g. debian/control.in), debmutate will attempt to update that file instead and then regenerate debian/control. If it is unable to do so, it will raise a GeneratedFile exception.

The file will be left as-is if an exception is raised, or if the .cancel() method is called.

debmutate currently provides editors for the following control files:

  • debian/changelog

  • debian/copyright

  • debian/control

  • debian/patches/series

  • debian/tests/control

  • debian/watch

  • debian/maintscripts, debian/*.maintscripts

  • debian/source/lintian-overrides, debian/*.lintian-overrides

  • debian/debcargo.toml

Project details


Download files

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

Source Distribution

debmutate-0.58.tar.gz (72.7 kB view details)

Uploaded Source

File details

Details for the file debmutate-0.58.tar.gz.

File metadata

  • Download URL: debmutate-0.58.tar.gz
  • Upload date:
  • Size: 72.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.7

File hashes

Hashes for debmutate-0.58.tar.gz
Algorithm Hash digest
SHA256 5b9f3f91aa0f982af0b708cb811572862a1a1fa61705b30ab478e653aa4de477
MD5 442641c3d20a0aba453e3391cd68c47e
BLAKE2b-256 4f6c79f7b7507803cb98d954e658f605823b9d1e63c972561ad1218883c6e1df

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page