<commit_before># Python SDK

Python software development kit (SDK) and Jupyter notebooks for working with
OPENQASM and the IBM Quantum Experience (QE).

Related external projects:

- [Python API](https://github.com/IBM/qiskit-api-py)
- [OPENQASM](https://github.com/IBM/qiskit-openqasm)

## Organization

The *scripts* directory contains Jupyter notebooks showing how to use the
[Python API](https://github.com/IBM/qiskit-api-py) with [OPENQASM](https://github.com/IBM/qiskit-openqasm).

*Under development*; There are Jupyter notebooks demonstrating components of
the SDK in the *scripts* directory. There are also command line test scripts
in the *testscripts* directory.

*Under development*; Ismael has refactored the parser on a branch of qx-sdk
but not committed yet. For this reason, I am leaving the Qasm module as is
for now, except to change it to accept OPENQASM. We want to reorganize the
SDK so that is has a comfortable and intuitive interface for developers.

Here is the current organization. The *qiskit_sdk* directory is a Python
module. It contains a *Qasm* module for parsing OPENQASM circuits,
an *unroll* module for unrolling QASM to a circuit object, a *circuit* module
for representing, transforming, and computeing properties of OPENQASM circuits
as directed acyclic graphs, and a *localize* module for mapping all-to-all
circuits to run on machines with fixed couplings.

Quantum circuits flow through the components as follows. **OPENQASM** source,
as a file or string, is passed into a *Qasm* object, whose *parse* method
produces an abstract syntax tree (**AST**) representation. The **AST** is
passed to an *Unroller* that is attached to an *UnrollerBackend*. There is
an unimplemented base class, a *PrinterBackend* for outputting text, and
a *CircuitBackend* for constructing *circuit* objects. The *circuit* object
represents an unrolled **OPENQASM** circuit as a directed acyclic graph
(**DAG**). The *circuit* provides methods for working with circuits and
outputting **OPENQASM**.

## Setup Python Virtual Enviroment
<commit_msg>tweak readme<commit_after># Python SDK

Python software development kit (SDK) and Jupyter notebooks for working with
OPENQASM and the IBM Quantum Experience (QE).

Related external projects:

- [Python API](https://github.com/IBM/qiskit-api-py)
- [OPENQASM](https://github.com/IBM/qiskit-openqasm)

## Organization

The *scripts* directory contains Jupyter notebooks showing how to use the
[Python API](https://github.com/IBM/qiskit-api-py) with
[OPENQASM](https://github.com/IBM/qiskit-openqasm).

*Under development*; There are Jupyter notebooks demonstrating components of
the SDK in the *scripts* directory. There are also command line test scripts
in the *testscripts* directory.

*Under development*; We want to reorganize the SDK so that it has a
comfortable and intuitive interface for developers. I will learn from
Ismael, Fran, Jorge, and Paco what architecture makes sense and try to
implement that architecture.

Here is the current organization. The *qiskit_sdk* directory is a Python
module. It contains a *qasm* module for parsing OPENQASM circuits,
an *unroll* module for unrolling QASM to a circuit object, a *circuit* module
for representing, transforming, and computeing properties of OPENQASM circuits
as directed acyclic graphs, and a *localize* module for mapping all-to-all
circuits to run on machines with fixed couplings.

Quantum circuits flow through the components as follows. **OPENQASM** source,
as a file or string, is passed into a *qasm* object, whose *parse* method
produces an abstract syntax tree (**AST**) representation. The **AST** is
passed to an *Unroller* that is attached to an *UnrollerBackend*. There is
an unimplemented base class, a *PrinterBackend* for outputting text, and
a *CircuitBackend* for constructing *circuit* objects. The *circuit* object
represents an unrolled **OPENQASM** circuit as a directed acyclic graph
(**DAG**). The *circuit* provides methods for working with circuits and
outputting **OPENQASM**.

## Setup Python Virtual Enviroment

{'fraction_non_alphanumeric': 0.07841691248770895, 'fraction_numerical': 0.0, 'mean_word_length': 5.193302891933029, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 8, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6042393', 'n_tokens_mistral': 1192, 'n_tokens_neox': 1106, 'n_words': 536}