Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (
Help us improve Python packaging - Donate today!

Command-line tool and library for DOAP (Description of a Project) RDF.

Project Description

Doapfiend is a command-line client and library for fetching, displaying, creating, and manipulating DOAP (Description of a Project) files.

Doapfiend uses RDFAlchemy/rdflib as an ORM to query and create DOAP.

See docs/api for Epydoc generated API documentation.


  • Display metadata in DOAP in a human-readable format
  • Get DOAP by a !SourceForge, Freshmeat, PyPI, Ohloh etc. project name
  • Search all DOAP spidered on the web (
  • Access the metadata in the DOAP file using Python dot notation
  • Fetch DOAP by using the short name of a DOAP PURL
  • Fetch and display DOAP mentioned in FOAF by project homepage
  • Written in Python (Yes, that’s a feature.)
  • Extensible with plugins using setuptools

Optional Plugins available

  • Generate a web page with CSS from a DOAP file (using hdoap)
  • Search for DOAP using a Gentoo Linux pacakge name (Thanks GLEP 46)

Plugins in development

  • Search for DOAP by names you know, such as your distribution’s package names
  • Create a Gentoo ebuild from a DOAP file


You can InstallDoapfiend using distutils, easy_install or subversion. There is also a Gentoo Linux ebuild available.

Example command-line usage

Fetch DOAP for SourceForge project named ‘nut’:

$ doapfiend --sf nut

You have a project’s homepage, display DOAP if any has been spidered:

$ doapfiend -o

You have the URL or local path to a DOAP file:

$ doapfiend -d

Display DOAP as RDF/XML for the SourceForge project ‘nut’:

$ doapfiend -x --sf nut

Display DOAP as N3 (Notation Three) for the SourceForge project ‘nut’:

$ doapfiend -n --sf nut

Example library usage

Use a Freshmeat project name to fetch and display DOAP:

>>> from doapfiend.doaplib import get_by_pkg_index

>>> print get_by_pkg_index('fm', 'nut')

Get some DOAP and access its metadata:

>>> from doapfiend.doaplib import get_by_pkg_index, load_graph
>>> doap = load_graph(get_by_pkg_index('fm', 'nut'))
>>> print
>>> print doap.created

Use a project’s homepage to fetch DOAP and print the RDF/XML. Note there may be more than one DOAP profile out there; we just use the first found in our example.

>>> from doapfiend.doaplib import query_by_homepage, print_doap
>>> url = query_by_homepage('')[0][1]
>>> print fetch_doap(url)

Same as above but display DOAP in human readable text:

>>> print_doap(fetch_doap(url))

Release History

This version
History Node


History Node


History Node


History Node


History Node


History Node


Download Files

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

Filename, Size & Hash SHA256 Hash Help File Type Python Version Upload Date
(67.5 kB) Copy SHA256 Hash SHA256
Egg 2.5 Jun 10, 2008
(263.5 kB) Copy SHA256 Hash SHA256
Source None Jun 10, 2008

Supported By

Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Google Google Cloud Servers