diff --git a/src/bcf/README.md b/src/bcf/README.md index 85f2f328cf..90c3fd71ca 100644 --- a/src/bcf/README.md +++ b/src/bcf/README.md @@ -5,3 +5,55 @@ Manipulation of BCF-XML is available via `bcfxml.py` and manipulation of BCF-API is available via `bcfapi.py`. Currently supports BCF version 2.1. + +## bcfxml + +The `bcfxml` module lets you interact with the BCF-XML standard. + +``` +from bcf.bcfxml import BcfXml + +bcfxml = BcfXml() + +# Load a project +project = bcfxml.get_project("/path/to/file.bcf") + +# The project is also stored in the module +# project == bcfxml.project + +print(project.name) + +# To edit a project, just modify the object directly +bcfxml.project.name = "New name" +bcfxml.edit_project() + +# The BCF file is extracted to this temporary directory +print(bcfxml.filepath) + +# Get a dictionary of topics +topics = bcfxml.get_topics() + +# Note: topics == bcfxml.topics +for guid, topic in bcfxml.topics.items(): + print("Topic guid is", guid) + print("Topic guid is", topic.guid) + print("Topic title is", topic.title) + + # Fetch extra data about a topic + header = bcfxml.get_header(guid) + comments = bcfxml.get_comments(guid) + viewpoints = bcfxml.get_viewpoints(guid) + + # Note: comments == topic.comments, and so on + for comment_guid, comment in comments.items(): + print(comment_guid) + print(comment.comment) + print(comment.author) + +# Get a particular topic +topic = bcfxml.get_topic(guid) + +# Modify a topic +topic.title = "New title" +bcfxml.edit_topic(topic) +```