Skip to main content

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


Download files

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

Source Distribution

bcf-client-0.0.230918.tar.gz (49.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bcf_client-0.0.230918-py3-none-any.whl (60.5 kB view details)

Uploaded Python 3

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

Hashes for bcf-client-0.0.230918.tar.gz
Algorithm Hash digest
SHA256 8442a6858b58c30e8057b5865133238409cdfcea68e7f2d9b6329a4e28937fe9
MD5 5f9f582000c0cc0056c86fe67757bc76
BLAKE2b-256 66d40a853770f2e0e77e0cdd49a7f176e8e0d4b8e7553849994aebf4ffd63558

See more details on using hashes here.

File details

Details for the file bcf_client-0.0.230918-py3-none-any.whl.

File metadata

File hashes

Hashes for bcf_client-0.0.230918-py3-none-any.whl
Algorithm Hash digest
SHA256 5879370c149e7a48e6bb288687a5f156b9d7d2671c53f9dcf0a3d371f3a3c83c
MD5 6320cd6596a38515033b92c296b0ca9a
BLAKE2b-256 f2eb4b19332f151bce7fbbced2d3e45b29cf75dbbbc50ae6850fcd62ac3b4a7a

See more details on using hashes here.

Supported by

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