Qiskit / documentation

The documentation content home for https://docs.quantum.ibm.com.
https://docs.quantum.ibm.com
Apache License 2.0
39 stars 80 forks source link

Qiskit API: group modules into logical sections #1211

Closed Eric-Arellano closed 6 months ago

Eric-Arellano commented 7 months ago

For example

image

image

The main changes:

  1. group related modules into new categories
  2. flatten submodules to reduce overall nesting

Qiskit 1.0 modules

code to find modules ```python from pathlib import Path import json raw = Path("docs/api/qiskit/_toc.json").read_text() content = json.loads(raw) all_modules = set() def add_modules(entry) -> None: if entry.get("title").startswith("qiskit."): all_modules.add(entry["title"]) if "children" in entry: for child in entry["children"]: add_modules(child) add_modules(content) print("\n".join(sorted(all_modules))) ```
module list qiskit.assembler qiskit.circuit qiskit.circuit.classical qiskit.circuit.classicalfunction qiskit.circuit.library qiskit.circuit.singleton qiskit.compiler qiskit.converters qiskit.dagcircuit qiskit.exceptions qiskit.passmanager qiskit.primitives qiskit.providers qiskit.providers.basic_provider qiskit.providers.fake_provider qiskit.providers.models qiskit.pulse qiskit.qasm2 qiskit.qasm3 qiskit.qobj qiskit.qpy qiskit.quantum_info qiskit.result qiskit.scheduler qiskit.synthesis qiskit.synthesis.unitary.aqc qiskit.transpiler qiskit.transpiler.passes qiskit.transpiler.passes.synthesis.plugin qiskit.transpiler.preset_passmanagers qiskit.transpiler.preset_passmanagers.plugin qiskit.utils qiskit.visualization
javabster commented 7 months ago

I'm sure the qiskit devs will have a better suggestion, but how about something like this for the grouping? I tried to group things into sections according to what users might be most likely to look for:

Circuit Construction

qiskit.quantum_info (TODO: decide if this should go into "Circuit and Operator Construction", or be the sole module in the section "Quantum Information and Operator Construction")

Transpilation

Primitives and providers

Results and visualisations

OpenQASM support

Pulse-level programming

Other

Eric-Arellano commented 7 months ago

Module list when you include 0.19 up to 1.0

Circuit construction

Quantum Information (qiskit.quantum_info)

Transpilation

Primitives and providers

Results and visualisations

Opflow

Serialization (OpenQASM and QPy)

Pulse-level programming

qiskit.execute qiskit.execute_function

Other

Qiskit Aer

IBM Q Provider

Algorithms

Qiskit Aqua

Qiskit Ignis

Finance

Chemistry

Machine Learning

Optimization