Skip to main content

Enable creation and edition of xapi file from git source

Project description

GitToXApi

Library used to turn git change log data to xapi format

Format

The file consists of a list of xApi statements with each statement that represent a commit of the master branch. To store git differential on a statement we use extensions in object.definition

"git": [
            {
              "objectType": "Differential",
              "file": "test.txt",
              "parts": [
                {
                  "a_start_line": 0,
                  "a_interval": 2,
                  "b_start_line": 0,
                  "b_interval": 2,
                  "content": [
                    " Hello",
                    "-wold",
                    "+World !",
                  ]
                }
              ]
            }
          ]

Installation

Use pip to install this library : pip install GitToXApi

Example

Conversion

import GitToXApi.utils as utils
from tincan import Statement
import git
import json

repo = git.Repo("path/to/example_repo")
stmts: list[Statement] = utils.generate_xapi(repo)

# With custom git diff arguments 
stmts: list[Statement] = utils.generate_xapi(repo, {"unified": 1000})

Serialization

import json
with open("dump.json", "w") as f:
    f.write(utils.serialize_statements(stmts))

    # With custom serializing params
    f.write(utils.serialize_statements(stmts, indent=2))

Deserialization

import GitToXApi.utils as utils

stmts = None
with open("dump.json", "r") as f:
    stmts = utils.deserialize_statements(f)

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

gittoxapi-0.2.2.tar.gz (6.0 kB view details)

Uploaded Source

File details

Details for the file gittoxapi-0.2.2.tar.gz.

File metadata

  • Download URL: gittoxapi-0.2.2.tar.gz
  • Upload date:
  • Size: 6.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.12

File hashes

Hashes for gittoxapi-0.2.2.tar.gz
Algorithm Hash digest
SHA256 bc040b01941512441a253f2af01bddfba875ff04ea7fa8a145884026d0e89805
MD5 1b8f21de22f77b3b72b919b84211facb
BLAKE2b-256 bd86b418634c84ca437a599dde36149701efdf5d8ab234093c23d34a78673ff6

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