BCF-XML file handler.
Project description
bcf
A simple Python implementation of BCF.
Manipulation of BCF-XML is available via bcfxml.py and manipulation of BCF-API
is available via bcfapi.py.
It tries to support BCF-XML version 2.1 and 3.0, and BCF-API 3.0.
bcfxml
The bcfxml.load function lets you read a BCF-XML file.
It takes care of using the right version based on the "bcf.version" file contained in the BCF package.
The BCF files are extracted and parsed on-demand, and edits are stored in memory until you call the save method.
from bcf.bcfxml import load
# Load a project
with load("/path/to/file.bcf") as bcfxml:
project = bcfxml.project
print(project.name)
# To edit a project, just modify the object directly
bcfxml.project.name = "New name"
# Get a dictionary of topics
topics = bcfxml.topics
for topic_guid, topic_handler in bcfxml.topics.items():
topic = topic_handler.topic
print("Topic guid is", topic.guid)
print("Topic title is", topic.title)
# Fetch extra data about a topic
header = topic_handler.header
comments = topic_handler.comments
viewpoints = topic_handler.viewpoints
for comment in comments:
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.save()
bcfapi
The bcfapi module lets you interact with the BCF-API standard.
from bcf.v3.bcfapi import FoundationClient, BcfClient
foundation_client = FoundationClient("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET", "OPENCDE_BASEURL")
auth_methods = foundation_client.get_auth_methods()
# Our library currently only implements the authorization_code flow
if "authorization_code" in auth_methods:
foundation_client.login()
bcf_client = BcfClient(foundation_client)
versions = foundation_client.get_versions()
for version in versions:
if "3.0" in versions:
if version["api_id"] == "bcf" and version["version_id"] == "3.0":
bcf_client.set_version(version)
data = bcf_client.get_projects()
print(data)
project_id = data[0]["project_id"]
print(project_id)
data = bcf_client.get_project(project_id)
print(data)
data = bcf_client.get_extensions(project_id)
print(data)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file bcf-client-0.0.230918.tar.gz.
File metadata
- Download URL: bcf-client-0.0.230918.tar.gz
- Upload date:
- Size: 49.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8442a6858b58c30e8057b5865133238409cdfcea68e7f2d9b6329a4e28937fe9
|
|
| MD5 |
5f9f582000c0cc0056c86fe67757bc76
|
|
| BLAKE2b-256 |
66d40a853770f2e0e77e0cdd49a7f176e8e0d4b8e7553849994aebf4ffd63558
|
File details
Details for the file bcf_client-0.0.230918-py3-none-any.whl.
File metadata
- Download URL: bcf_client-0.0.230918-py3-none-any.whl
- Upload date:
- Size: 60.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5879370c149e7a48e6bb288687a5f156b9d7d2671c53f9dcf0a3d371f3a3c83c
|
|
| MD5 |
6320cd6596a38515033b92c296b0ca9a
|
|
| BLAKE2b-256 |
f2eb4b19332f151bce7fbbced2d3e45b29cf75dbbbc50ae6850fcd62ac3b4a7a
|