Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adding Target and InstructionProperties representations to rust #12292

Merged
merged 161 commits into from
Jul 25, 2024

Commits on Apr 4, 2024

  1. Initial: Add Target class to _accelerate

    - Add `Target` class to test mobility between Rust and Python.
    - Add `add_instruction` method to test compatibility with instructions.
    raynelfss committed Apr 4, 2024
    Configuration menu
    Copy the full SHA
    5c86791 View commit details
    Browse the repository at this point in the history
  2. Fix: Remove empty property check

    - Property check caused most cases to panic.
    - Will be commented out and restored at a later time.
    raynelfss committed Apr 4, 2024
    Configuration menu
    Copy the full SHA
    1d50653 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    7135d72 View commit details
    Browse the repository at this point in the history

Commits on Apr 5, 2024

  1. Configuration menu
    Copy the full SHA
    7d0982e View commit details
    Browse the repository at this point in the history
  2. Add: Instructions property

    - Instructions property returns all added to the target.
    - Similar behavior to source.
    raynelfss committed Apr 5, 2024
    Configuration menu
    Copy the full SHA
    ecc4668 View commit details
    Browse the repository at this point in the history
  3. Chore: comments and deprecated methods

    - Add comments to instruction property.
    - Use new_bound for new PyDicts.
    raynelfss committed Apr 5, 2024
    Configuration menu
    Copy the full SHA
    506b1bd View commit details
    Browse the repository at this point in the history
  4. Chore: Remove redundant code

    - Remove redundant transformation of PyObject to PyTuple.
    - Remove debugging print statement.
    raynelfss committed Apr 5, 2024
    Configuration menu
    Copy the full SHA
    f8064bf View commit details
    Browse the repository at this point in the history
  5. Add: InstructionProperties class and type checkers

    - Add `InstructionProperties` class to process properties in rust.
    - Add `is_instance` and `is_class` to identify certain Python objects.
    - Modify logic of `add_instruction` to use class check.
    - Other tweaks and fixes.
    raynelfss committed Apr 5, 2024
    Configuration menu
    Copy the full SHA
    e4e53ce View commit details
    Browse the repository at this point in the history

Commits on Apr 6, 2024

  1. Configuration menu
    Copy the full SHA
    b15e762 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    3d82845 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    fa2baab View commit details
    Browse the repository at this point in the history

Commits on Apr 8, 2024

  1. Add: Update_from_instruction_schedule_map

    - Partial addition from Target.py\
    - Introduction of hashable qarg data structure.
    - Other tweaks and fixes.
    raynelfss committed Apr 8, 2024
    Configuration menu
    Copy the full SHA
    90b7081 View commit details
    Browse the repository at this point in the history
  2. Add: Complete `update_from_instruction_schedule_map1

    - Complete missing procedures in function.
    - Rename `Qargs` to `HashableVec`.
    - Make `HashableVec` generic.
    - Separate `import_from_module_call` into call0 and call1.
    - Other tweaks and fixes.
    raynelfss committed Apr 8, 2024
    Configuration menu
    Copy the full SHA
    a65bf82 View commit details
    Browse the repository at this point in the history
  3. Add: instruction_schedule_map property.

    - Remove stray print statements.
    - Other tweaks and fixes.
    raynelfss committed Apr 8, 2024
    Configuration menu
    Copy the full SHA
    c00ab10 View commit details
    Browse the repository at this point in the history

Commits on Apr 9, 2024

  1. Fix: Key issue in update_from_instruction_schedule_map

    - Remove all unsafe unwraps
    raynelfss committed Apr 9, 2024
    Configuration menu
    Copy the full SHA
    10cec4f View commit details
    Browse the repository at this point in the history

Commits on Apr 10, 2024

  1. Fix: Use PyResult Value for void functon

    - Update `update_from_instruction_schedule_map to use PyResult and '?' operator.
    - Use Bound Python objects whenever possible.
    - Other tweaks and fixes.
    raynelfss committed Apr 10, 2024
    Configuration menu
    Copy the full SHA
    12cccca View commit details
    Browse the repository at this point in the history
  2. Add: Python wrapping for Target

    - Add temporary _target module for testing.
    - Remove update_from_instruction_schedule_map function back to python.
    - Add python properties for all public attributes in rust
    - Other tweaks and fixes.
    raynelfss committed Apr 10, 2024
    Configuration menu
    Copy the full SHA
    c3d79ff View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    5e2d100 View commit details
    Browse the repository at this point in the history
  4. Add: qargs property

    - Add identical method `qargs` to obtain the qargs of a target.
    - Other tweaks and fixes.
    raynelfss committed Apr 10, 2024
    Configuration menu
    Copy the full SHA
    be6bf15 View commit details
    Browse the repository at this point in the history
  5. Add: qargs_for_operation_name function.

    - Add function with identical behavior to the original in Target.
    - Other tweaks and fixes.
    raynelfss committed Apr 10, 2024
    Configuration menu
    Copy the full SHA
    28e2e01 View commit details
    Browse the repository at this point in the history
  6. Add: durations method for Target

    - Add target module to qiskit init file.
    - Remove is_instance method.
    - Modify set_calibration method in InstructionProperty to leave typechecking to Python.
    - Change rust Target alias to Target2.
    - Other tweaks and fixes,
    raynelfss committed Apr 10, 2024
    Configuration menu
    Copy the full SHA
    1f9bdbf View commit details
    Browse the repository at this point in the history

Commits on Apr 11, 2024

  1. Configuration menu
    Copy the full SHA
    dd7e115 View commit details
    Browse the repository at this point in the history
  2. Fix: InstructionProperties could not receive calibrations

    - Fix wrong setters/getters for calibration in InstructionProperty object in rust.
    raynelfss committed Apr 11, 2024
    Configuration menu
    Copy the full SHA
    f58fb09 View commit details
    Browse the repository at this point in the history

Commits on Apr 12, 2024

  1. Add: more methods to Target in target.rs

    - Add FromPyObject trait to Hashable vec to receive Tuples and transform them directly into this type.
    - Add operations_for_qargs for Target class in Rust side and Python.
    - Fix return dict keys for `qargs_for_operation_name`.
    - Add `timing_constrains` and `operation_from_name` to Python side.
    - Other tweaks and fixes.
    raynelfss committed Apr 12, 2024
    Configuration menu
    Copy the full SHA
    04bca9f View commit details
    Browse the repository at this point in the history
  2. Fix: missing return value in operations_for_args

    - Fix wrong name for function operation_for_qargs.
    - Fix missing return value in the python side.
    - Other tweaks and fixes.
    raynelfss committed Apr 12, 2024
    Configuration menu
    Copy the full SHA
    bc089cc View commit details
    Browse the repository at this point in the history
  3. Fix: Bad compatibility with InstructionProperties

    - Make `InstructionProperties` "_calibration" attribute visible.
    - Removed attribute "calibration", treat as class property.
    - Other tweaks and fixes
    raynelfss committed Apr 12, 2024
    Configuration menu
    Copy the full SHA
    6fc8679 View commit details
    Browse the repository at this point in the history
  4. Add: operation_names_for_qargs to Target

    - Port class method to rust and connect to Python wrapper.
    - Other tweaks and fixes.
    raynelfss committed Apr 12, 2024
    Configuration menu
    Copy the full SHA
    3fec978 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    01d146a View commit details
    Browse the repository at this point in the history

Commits on Apr 13, 2024

  1. Add: instruction_supported method to rust and python:

    - Other tweaks and fixes.
    raynelfss committed Apr 13, 2024
    Configuration menu
    Copy the full SHA
    020493d View commit details
    Browse the repository at this point in the history
  2. Add: changes to add_instruction function to increase functionality.

    - These changes break current functionality of other functions, butemulate intended behavior better.
    - Fixes coming soon.
    raynelfss committed Apr 13, 2024
    Configuration menu
    Copy the full SHA
    abe88cf View commit details
    Browse the repository at this point in the history
  3. Fix: Backwards compatibility with add_instruction

    - Fixed wrong additions to HashMaps in the rust side causing instructions to be missing.
    - Other tweaks and fixes.
    raynelfss committed Apr 13, 2024
    Configuration menu
    Copy the full SHA
    94cbb85 View commit details
    Browse the repository at this point in the history

Commits on Apr 15, 2024

  1. Fix: Gate Map behavior didn't match Qiskit#11422

    - Make GateMap use optional values to match behavior of Qiskit#11422.
    - Define GateMapType for complex type in self.gate_map.
    - Throw Python KeyError exceptions from the rust side in `update_instruction_properties` and other functions.
    - Modify logic in subsequent functions that use gate_map optional values.
    - Other tweaks and fixes.
    raynelfss committed Apr 15, 2024
    Configuration menu
    Copy the full SHA
    3063856 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    7006e88 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    24a2fac View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    2da6774 View commit details
    Browse the repository at this point in the history

Commits on Apr 16, 2024

  1. Add: build_coupling_map and helper methods

    - `build_coupling_map`will remain in Python for now, along with its helper functions.
    - Make `gate_name_map` visible to python.
    - Add `coupling_graph` attribute to Target in Rust.
    - Other tweaks and fixes.
    raynelfss committed Apr 16, 2024
    Configuration menu
    Copy the full SHA
    1fae1d7 View commit details
    Browse the repository at this point in the history

Commits on Apr 17, 2024

  1. Add: get_non_global_operation_names to Target.

    - Add attributes `non_global_strict_basis` and `non_global_basis` as Optional.
    - Other tweaks and fixes.
    raynelfss committed Apr 17, 2024
    Configuration menu
    Copy the full SHA
    644089f View commit details
    Browse the repository at this point in the history
  2. Add: Missing properties

    - Add properties: operations, operation_names, and physical_qubits.
    - Reorganize properties placement.
    - Other tweaks and fixes.
    raynelfss committed Apr 17, 2024
    Configuration menu
    Copy the full SHA
    5d2ba5a View commit details
    Browse the repository at this point in the history
  3. Add: from_configuration classmethod to Target.

    - Add method that mimics the behavior of the python method.
    - Change concurrent_measurements to 2d Vec instead of a Vec of sets.
    - Other tweaks and fixes.
    raynelfss committed Apr 17, 2024
    Configuration menu
    Copy the full SHA
    2f5063e View commit details
    Browse the repository at this point in the history
  4. Add: Magic methods to Rust and Python

    - Add docstring to __init__.
    - Add __iter__, __getitem__, __len__, __contains__, keys, values, and items methods to rust.
    - Add equivalen methods to python + the __str__ method.
    - Make description an optional attribute in rust.
    - Other tweaks and fixes.
    raynelfss committed Apr 17, 2024
    Configuration menu
    Copy the full SHA
    fc3b07e View commit details
    Browse the repository at this point in the history

Commits on Apr 18, 2024

  1. Fix: Bugs when fetching qargs or operations

    - Fix qarg_for_operation_name logic to account for None and throw correct exceptions.
    - Stringify description before sending in case of numerical descriptors.
    - Fix qarg to account for None entry.
    - Other tweaks and fixes.
    raynelfss committed Apr 18, 2024
    Configuration menu
    Copy the full SHA
    c345397 View commit details
    Browse the repository at this point in the history
  2. Chore: Prepare for Draft PR

    - Remove _target.py testing file.
    - Fix incorrect initialization of calibration in InstructionProperties.
    - Other tweaks and fixes.
    raynelfss committed Apr 18, 2024
    Configuration menu
    Copy the full SHA
    4b5a16d View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    22d1d05 View commit details
    Browse the repository at this point in the history
  4. Fix: target not being recognized as a module

    - Add target to the pyext crate.
    - Change placement of target import for alphabetical ordering.
    - Other tweaks and fixes.
    raynelfss committed Apr 18, 2024
    Configuration menu
    Copy the full SHA
    4b7aed3 View commit details
    Browse the repository at this point in the history

Commits on Apr 19, 2024

  1. Fix: Change HashMap to IndexMap

    - Change from f32 to f64 precision.
    - Other tweaks and fixes.
    raynelfss committed Apr 19, 2024
    Configuration menu
    Copy the full SHA
    d71e527 View commit details
    Browse the repository at this point in the history
  2. Fix: Move InstructionProperties fully to Rust

    - Move InstructionProperties to rust.
    - Modify gate_map to accept an InstructionProprties object instead of PyObjecy.
    - Change update_instruction_properties to use Option InstructionProprtyird.
    - Remove InstructionProperties from target.py
    - Other tweaks and fixes.
    raynelfss committed Apr 19, 2024
    Configuration menu
    Copy the full SHA
    25c0595 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    d97c13b View commit details
    Browse the repository at this point in the history
  4. Fix: Make Target inherit from Rust

    - Make Target inherit from the rust-side Target by using subclass attribute, then extending its functionality using python.
    - Switch from __init__ to __new__ to adapt to the Target rust class.
    - Modify every trait that worked with `target._Target` to use `super()` or `self` instead.
    - Fix repr in InstructionProperties to not show `Some()` when a value exists.
    - Fix `__str__` method in `Target` to not display "None" if no description is given.
    - Assume `num_qubits` is the first argument when an integer is provided as a first argument and nothing else is provided for second (Target initializer).
    - Return a set in operation_names instead of a Vec.
    - Other tweaks and fixes.
    raynelfss committed Apr 19, 2024
    Configuration menu
    Copy the full SHA
    8e141d9 View commit details
    Browse the repository at this point in the history
  5. Fix: Recognize None in operation_for_qargs.

    - Fix module labels for each class in target.rs.
    - Use py.is_instance instead of passing isinstance to `instruction_supported`.
    - Modify `operations_for_qargs` to accept optional values less aggressively. Allow it to find instructions with no qargs. (NoneType).
    - Other tweaks and fixes.
    raynelfss committed Apr 19, 2024
    Configuration menu
    Copy the full SHA
    ba74a04 View commit details
    Browse the repository at this point in the history

Commits on Apr 21, 2024

  1. Fix: Make InstructionProperties subclassable.

    - Fix get_non_global_operation_names to accept optional values and fix search set to use sorted values.
    - Fix __repr__ method in InstructionProperties to add punctuation.
    - Fix typo in python durations method.
    - Modify test to overload __new__ method instead of just  __init__ (Possible breaking change).
    -Other tweaks and fixes.
    raynelfss committed Apr 21, 2024
    Configuration menu
    Copy the full SHA
    331ab42 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    db05c90 View commit details
    Browse the repository at this point in the history
  3. Fix: errors in instruction_properties and others:

    - Allow `instruction_properties` method to view optional properties.
    - Allow `operation_names_for_qargs` to select class instructions when None is passed as a qarg.
    - Modify __str__ method to display error and duration times as int if the value is 0.
    - Other tweaks and fixes.
    raynelfss committed Apr 21, 2024
    Configuration menu
    Copy the full SHA
    d2ea839 View commit details
    Browse the repository at this point in the history

Commits on Apr 22, 2024

  1. Configuration menu
    Copy the full SHA
    949bd4f View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    5c0adb3 View commit details
    Browse the repository at this point in the history

Commits on Apr 23, 2024

  1. Configuration menu
    Copy the full SHA
    fcc7727 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    b2ce752 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    9e30296 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    b637a7f View commit details
    Browse the repository at this point in the history
  5. Fix: instruction_supported method:

    - Rewrite the logic of instruction_supported due to previous errors in the method.
    - Move `check_obj_params` to Rust.
    - Other tweaks and fixes.
    raynelfss committed Apr 23, 2024
    Configuration menu
    Copy the full SHA
    98e2c65 View commit details
    Browse the repository at this point in the history
  6. Fix: errors in from_configuration class method.

    - Fix some of the logic when retrieving gates from `name_mapping`.
    - Remove function arguments in favor of implementing counterpart functions in rust.
    - Add qubit_props_list_from_props function and return rust datatypes.
    - Fix wrong error handling procedures when retrieving attributes from backend_property.
    - Other tweaks and fixes.
    raynelfss committed Apr 23, 2024
    Configuration menu
    Copy the full SHA
    b5c396e View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    879bcc2 View commit details
    Browse the repository at this point in the history

Commits on Apr 24, 2024

  1. Fix: Import InstructionScheduleMap directly instead of passing.

    - `instruction_schedule_map()` now imports the classtype directly from rust instead of needing it to be passed from python.
    - Remove unused imports in `target.py`.
    - Ignore unused arguments in `test_extra_props_str`.
    - Other tweaks and fixes.
    raynelfss committed Apr 24, 2024
    Configuration menu
    Copy the full SHA
    94a1b53 View commit details
    Browse the repository at this point in the history

Commits on Apr 25, 2024

  1. Docs: Add docstrings to rust functions

    - Remove redundant redefinitions in python.
    - Fix text_signatures for some rust functions.
    - Added lint exceptions to some necessary imports and function arguments.
    - Other tweaks and fixes.
    raynelfss committed Apr 25, 2024
    Configuration menu
    Copy the full SHA
    f189528 View commit details
    Browse the repository at this point in the history
  2. Add: Make Target and InstructionProperties pickleable.

    - Add `__getstate__` and `__setstate__` methods to make both rust subclasses pickleable.
    raynelfss committed Apr 25, 2024
    Configuration menu
    Copy the full SHA
    37fbf90 View commit details
    Browse the repository at this point in the history
  3. Fix: Wrong calibration assignment in __setstate__

    - Use set_calibration to set the correct calibration argument.
    - Fix wrong signature in get_non_global_operation_names.
    - Other tweaks and fixes.
    raynelfss committed Apr 25, 2024
    Configuration menu
    Copy the full SHA
    d2e2338 View commit details
    Browse the repository at this point in the history

Commits on Apr 29, 2024

  1. Refactor: HashableVec is now Qarg

    - Use `PhysicalQubit` instead of u32 for qargs.
    - Use a `SmallVec` of size 4 instead of a dynamic Vec.
    - Default to using the `Hash()` method embedded in `SmallVec`.
    - Add a Default method to easily unwrap Qarg objects.
    - Other tweaks and fixes.
    raynelfss committed Apr 29, 2024
    Configuration menu
    Copy the full SHA
    f34ff4b View commit details
    Browse the repository at this point in the history
  2. Add: get function to target.

    - Remove some redundant cloning in code.
    - Other small fixes.
    raynelfss committed Apr 29, 2024
    Configuration menu
    Copy the full SHA
    05ac76a View commit details
    Browse the repository at this point in the history

Commits on Apr 30, 2024

  1. Fix: Remove unnecessary Optional values in gate_map.

    - Update every gate_map call to use the new format.
    - Other small tweaks and fixes.
    raynelfss committed Apr 30, 2024
    Configuration menu
    Copy the full SHA
    89c7dea View commit details
    Browse the repository at this point in the history

Commits on May 1, 2024

  1. Refactor: calibration is for InstructionProperties

    - Use python `None` instead of option to store `calibration` in `InstructionProperties`.
    - Adapt code to these changes.
    - Remove redundant implementation of Hash in Qargs.
    - Other tweaks and fixes.
    raynelfss committed May 1, 2024
    Configuration menu
    Copy the full SHA
    7d59c6a View commit details
    Browse the repository at this point in the history

Commits on May 2, 2024

  1. Configuration menu
    Copy the full SHA
    340cf9c View commit details
    Browse the repository at this point in the history
  2. Fix: Temporary speedup for gate_map access

    - Added temporary speedups to access the gate_map by returning the values as PyObjects.
    - Convert qargs to rust tuples instead of initializing a `PyTuple`.
    - Store `InstructionProperties` as a python ref in gate_map. (Will be changed in future updates).
    - Other tweaks anf fixes.
    raynelfss committed May 2, 2024
    Configuration menu
    Copy the full SHA
    ee6407b View commit details
    Browse the repository at this point in the history

Commits on May 3, 2024

  1. Fix: Incorrect extractions for InstructionProperties

    - Fix incorrect conversion of `InstructionProperties` to `Py<InstructionProperties>`
    - Fix incorrect extraction of qargs in `update_from_instruction_schedule_map`
    raynelfss committed May 3, 2024
    Configuration menu
    Copy the full SHA
    a9b2119 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    14f80be View commit details
    Browse the repository at this point in the history

Commits on May 5, 2024

  1. Fix: Hide all private attributes in Target

    - Hide all private attributes of the `Target` to prevent unecessary cloning.
    - Other small tweaks and fixes.
    raynelfss committed May 5, 2024
    Configuration menu
    Copy the full SHA
    3d87163 View commit details
    Browse the repository at this point in the history

Commits on May 6, 2024

  1. Add: New representation of gate_map using new pyclasses:

    - Make Qarg a sequence pyclass.
    - Make QargPropsMap the new representation of a GateMap value.
    - Adapt the code to new structure.
    - TODO: Add missing magic methods for sequence and mapping objects.
    - Other small tweaks and fixes.
    raynelfss committed May 6, 2024
    Configuration menu
    Copy the full SHA
    83fd1c1 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    ff3e797 View commit details
    Browse the repository at this point in the history
  3. Add: Use custom datatypes to return values to Python.

    - Add QargSet datatype to return a set of qargs.
       - Works as return type for `Target.qargs`
       - Object is has itertype of QargSetIter.
    - Rename QargPropMap to PropsMap
       - Use iterator type IterPropsMap
    - Other small tweaks and fixes.
    raynelfss committed May 6, 2024
    Configuration menu
    Copy the full SHA
    b953605 View commit details
    Browse the repository at this point in the history

Commits on May 7, 2024

  1. Fix: Extend InstructionProperties to be subclassable using `__init__:

    - Made a subclass of `InstructionProperties` that can be extended using an `__init__`method.
    - Revert previous changes to `test_target.py`.
    - Other tweaks and fixes.
    raynelfss committed May 7, 2024
    Configuration menu
    Copy the full SHA
    5dabaaf View commit details
    Browse the repository at this point in the history
  2. Refactor: Split target into its own module

    - Reestructure the files to improve readability of code.
       - `instruction_properties.rs` contaisn the `InstructionProperties` class.
       - `mod.rs` contains the `Target` class.
       - `qargs.rs` contains the Qargs struct to store quantum arguments.
       - `property_map` contains the Qarg: Property Mapping that will be stored in the gate_map.
    - Add missing methods to PropsMap:
       - Add `PropsMapKeys` object to store the qargs as a set.
       - Add methods to compare and access `PropsMapKey`.
    - Add QargsOrTuple enum in Qargs to parse Qargs instantly.
    raynelfss committed May 7, 2024
    Configuration menu
    Copy the full SHA
    1d98941 View commit details
    Browse the repository at this point in the history

Commits on May 8, 2024

  1. Fix: Rest of failing tests in Target

    - Modify the `InstructionProperties` python wrapper.
       - InstructionProperties was not assigning properties to rust side.
    - Make duration in `InstructionProperties` setable.
    - Add `__eq__` method for `PropMap` to compare with other dicts.
    - `PropMapKeys` can only be compared with a Set.
    - Remove `qargs_for_operation_name` from `target.py`
    - Other small tweaks and fixes.
    raynelfss committed May 8, 2024
    Configuration menu
    Copy the full SHA
    09cd63d View commit details
    Browse the repository at this point in the history

Commits on May 9, 2024

  1. Add: New GateMap Structure

    - GateMap is now its own mapping object.
    - Add `__setstate__` and `__getstate__` methods for `PropMap` and `GateMap`.
    - Other small tweaks and fixes.
    raynelfss committed May 9, 2024
    Configuration menu
    Copy the full SHA
    defb0c9 View commit details
    Browse the repository at this point in the history

Commits on May 10, 2024

  1. Fix: Make new subclasses pickleable

    - Add module location to `PropsMap`, `GateMap`, and `Qargs`.
    - Added default method to PropMap.
    - Made default method part of class initializers.
    - Other smalls tweaks and fixes.
    raynelfss committed May 10, 2024
    Configuration menu
    Copy the full SHA
    ab6c00f View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    2ba35a2 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    71873ab View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    a4e2025 View commit details
    Browse the repository at this point in the history
  5. Add: GateMapKeys object in GateMap:

    - Use IndexSet as a base to preserve the insertion order.
    - Other tweaks and fixes.
    raynelfss committed May 10, 2024
    Configuration menu
    Copy the full SHA
    183bb5e View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    2e80be4 View commit details
    Browse the repository at this point in the history
  7. Fix: Modify GateMap to store values in Python heap.

    - Fix `GateMap.__iter__` to use an IndexKeys iterator.
    - Other small tweaks and fixes.
    raynelfss committed May 10, 2024
    Configuration menu
    Copy the full SHA
    92b787d View commit details
    Browse the repository at this point in the history

Commits on May 12, 2024

  1. Fix: Remove duplicate import of IndexSet::into_iter in GateMap.

    - Make `__iter__` use the keys() method in `GateMap`.
    raynelfss committed May 12, 2024
    Configuration menu
    Copy the full SHA
    9702ddc View commit details
    Browse the repository at this point in the history
  2. Fix:: Adapt to target changes (Qiskit#12288)

    - Fix lint stray imports.
    raynelfss committed May 12, 2024
    Configuration menu
    Copy the full SHA
    2d46d87 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    97d9341 View commit details
    Browse the repository at this point in the history

Commits on May 13, 2024

  1. Fix: Incorrect creation of parameters in `update_from_instruction_sch…

    …edule_map`
    
    - Add `tupelize` function to create tuples from non-downcastable items.
    - Fix creation of Parameters by iterating through members of tuple object and mapping them to parameters in `update_from_instruction_schedule_map`.
    - Add missing logic for creating a Target with/without `qubit_properties`.
    - Add tuple conversion of `Qargs` to store items in a dict in `BasisTranslator` and `UnitarySynthesis` passes.
    - Cast `PropsMap` object to dict when comparing in `test_fake_backends.py`.
    - Modify logic of helper functions that receive a bound object reference, a second `py` not required as an argument.
    - Add set operation methods to `GateMapKeys`.
    - Other tweaks and fixes.
    raynelfss committed May 13, 2024
    Configuration menu
    Copy the full SHA
    9df0586 View commit details
    Browse the repository at this point in the history
  2. Fix: More failing tests

    - Fix repeated erroneous calls to `add_instruction` in `update_from_instruction_schedule_map`
    - Add missing condition in `instruction_supported`
    - Use `IndexSet` instead of `HashSet` for `QargsSet`.
    - Other small tweaks and fixes.
    raynelfss committed May 13, 2024
    Configuration menu
    Copy the full SHA
    2575431 View commit details
    Browse the repository at this point in the history

Commits on May 14, 2024

  1. Add: Macro rules for qargs and other sequences.

    - Create `QargSet` and `PropsMap` using the new macros.
    - Return a `TargetOpNames` ordered set to python in `operation_names`.
    - Remove the Python side `operation_names.`
    - Fix faulty docstring in `target.py`.
    - Other tweaks and fixes.
    raynelfss committed May 14, 2024
    Configuration menu
    Copy the full SHA
    37070b2 View commit details
    Browse the repository at this point in the history

Commits on May 15, 2024

  1. Docs: Add necessary docstrings to all new rust functions.

    - Remove duplicate Iterator in GateMap.
    - Other small tweaks and fixes.
    raynelfss committed May 15, 2024
    Configuration menu
    Copy the full SHA
    7bfb9cd View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    d434f02 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    ada4738 View commit details
    Browse the repository at this point in the history

Commits on May 16, 2024

  1. Configuration menu
    Copy the full SHA
    a957406 View commit details
    Browse the repository at this point in the history

Commits on May 20, 2024

  1. Fix: Use GILOneCell and remove Qargs

    - Use `GILOneCell` to import python modules only once at initialization.
    - Remove the custom data structure `Qargs` to avoid conversion overhead.
    - `Qargs` does not use `PhysicalQubits`, `u32` is used instead.
    - Fix `__setstate__ `and `__getstate__` methods for `PropsMap`, `GateMap`, and `key_like_set_iterator` macro_rule.
    - Update code to use the new structures.
    - TODO: Fix broken tests.
    raynelfss committed May 20, 2024
    Configuration menu
    Copy the full SHA
    a3fcd78 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    aeefdab View commit details
    Browse the repository at this point in the history

Commits on May 22, 2024

  1. Fix: Cast Qargs to Tuple in specific situations

    - Use tupleize to cast `Qargs` to `Tuple` in `instructions`.
    - Use downcast to extract string in `add_instruction`.
    - Other tweaks and fixes.
    raynelfss committed May 22, 2024
    Configuration menu
    Copy the full SHA
    bf1fa67 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    ae55a38 View commit details
    Browse the repository at this point in the history

Commits on May 23, 2024

  1. Configuration menu
    Copy the full SHA
    6e2742d View commit details
    Browse the repository at this point in the history

Commits on May 28, 2024

  1. Add: Make Target Representable in Rust

    - Rename `InstructionProperties` as `BaseInstructionProperties`.
       - Remove `Calibration` from the rust space.
    - Restore `gate_map`, `coupling_map`, `instruction_schedule_map`, and `instruction_durations` to rust.
    - Remove all unnecessary data structures from rust space.
    - Other tweaks and fixes.
    raynelfss committed May 28, 2024
    Configuration menu
    Copy the full SHA
    1e0f9c0 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    52dbec0 View commit details
    Browse the repository at this point in the history

Commits on May 29, 2024

  1. Add: rust native functions to target

    - Added rust native functionality to target such that a `py` would not be needed to use one.
    - Add Index trait to make `Target` subscriptable.
    - Other small tweaks and fixes.
    raynelfss committed May 29, 2024
    Configuration menu
    Copy the full SHA
    31cc1f1 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    05ddc79 View commit details
    Browse the repository at this point in the history
  3. Fix: Remove all unnecessary python method calls.

    - Remove uage of `inspect.isclass`.
    - Rename `Target` to `BaseTarget` in the rust side.
    - Rename `err.rs` to `errors.rs`.
    - Remove rust-native `add_inst` and `update_inst` as Target should not be modified from Rust.
    - Made `add_instruction` and `update_instruction_properties` private in `BaseTarget`.
    - Add missing `get` method in `Target`.
    - Other tweaks and fixes
    raynelfss committed May 29, 2024
    Configuration menu
    Copy the full SHA
    d5f635f View commit details
    Browse the repository at this point in the history
  4. Format: Fix lint

    raynelfss committed May 29, 2024
    Configuration menu
    Copy the full SHA
    7a0d267 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    ee914aa View commit details
    Browse the repository at this point in the history

Commits on May 30, 2024

  1. Configuration menu
    Copy the full SHA
    aadfeaa View commit details
    Browse the repository at this point in the history

Commits on Jun 3, 2024

  1. Add: Temporary Instruction representation in rust.

    - Add temporary instruction representation to avoid repeated extraction from python.
    raynelfss committed Jun 3, 2024
    Configuration menu
    Copy the full SHA
    9f582ad View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    76d1b11 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    22229f0 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    f4318d2 View commit details
    Browse the repository at this point in the history
  5. Remove: CouplingGraph rust native representation.

    - Move to different PR.
    raynelfss committed Jun 3, 2024
    Configuration menu
    Copy the full SHA
    b4b438e View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    27febcc View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    cdf762e View commit details
    Browse the repository at this point in the history

Commits on Jun 4, 2024

  1. Configuration menu
    Copy the full SHA
    29c34ce View commit details
    Browse the repository at this point in the history

Commits on Jun 10, 2024

  1. Fix: Use Ahash for Hashing

    - Use ahash for hashing when possible.
    - Rename `BaseTarget` to `Target` in rust only.
    - Rename `BaseInstructionProperties` to `InstructionProperties` in rust only.
    - Remove optional logic from `generate_non_global_op_names`.
    - Use dict for `__setstate__` and `__getstate__` in `Target`.
    - Reduced the docstring for `Target` and `InstructionProperties`.
    - Other small tweaks and fixes.
    raynelfss committed Jun 10, 2024
    Configuration menu
    Copy the full SHA
    cf8fa99 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    c0d9b7b View commit details
    Browse the repository at this point in the history

Commits on Jun 11, 2024

  1. Configuration menu
    Copy the full SHA
    ed97436 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    0c671dd View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    8e42b49 View commit details
    Browse the repository at this point in the history

Commits on Jun 13, 2024

  1. Configuration menu
    Copy the full SHA
    03da436 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    0fd4316 View commit details
    Browse the repository at this point in the history

Commits on Jun 14, 2024

  1. Fix: Use new gates infrastructure (Qiskit#12459)

    - Create custom enum to collect either a `NormalOperation` or a `VariableOperation` depending on what is needed.
    - Add a rust native `is_instruction_supported` method to check whether a Target supports a certain instruction.
    - Make conversion methods from `circuit_instruction.rs` public.
    - Add comparison methods for `Param` in `operations.rs`
    - Remove need for isclass method in rustwise `add_instruction`
    - Other tweaks and fixes.
    raynelfss committed Jun 14, 2024
    Configuration menu
    Copy the full SHA
    529128a View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    d760332 View commit details
    Browse the repository at this point in the history
  3. Format: Fix rust formatting

    raynelfss committed Jun 14, 2024
    Configuration menu
    Copy the full SHA
    a359071 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    3406c8b View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    934b825 View commit details
    Browse the repository at this point in the history

Commits on Jun 15, 2024

  1. Configuration menu
    Copy the full SHA
    00ce1cb View commit details
    Browse the repository at this point in the history

Commits on Jun 17, 2024

  1. Format: Fix lint test

    raynelfss committed Jun 17, 2024
    Configuration menu
    Copy the full SHA
    752e058 View commit details
    Browse the repository at this point in the history

Commits on Jun 20, 2024

  1. Configuration menu
    Copy the full SHA
    7192f7b View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    d347e7b View commit details
    Browse the repository at this point in the history

Commits on Jun 26, 2024

  1. Configuration menu
    Copy the full SHA
    8b3b3ad View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    ce4ff6b View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    90b7b1e View commit details
    Browse the repository at this point in the history

Commits on Jul 1, 2024

  1. Configuration menu
    Copy the full SHA
    f03dc15 View commit details
    Browse the repository at this point in the history
  2. Fix: Improve rust methods to use iterators.

    - Adapt the Python methods to leverage the rust native improvements.
    - Use python native structures for the Python methods.
    raynelfss committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    71bc4c5 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    4277339 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    3b64cf6 View commit details
    Browse the repository at this point in the history

Commits on Jul 2, 2024

  1. Configuration menu
    Copy the full SHA
    88f4020 View commit details
    Browse the repository at this point in the history
  2. Fix: Rectify the behavior of qargs

    - Keep insertion order by inserting all qargs into a `PySet`.
    - Perform conversion to `PyTuple` at insertion time leveraging the iterator architecture.
    - Remove python side counterpart to avoid double iteration.
    - Make rust-native `qargs` return an iterator.
    raynelfss committed Jul 2, 2024
    Configuration menu
    Copy the full SHA
    98eaa45 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    7b14c36 View commit details
    Browse the repository at this point in the history

Commits on Jul 5, 2024

  1. Configuration menu
    Copy the full SHA
    1a61ebb View commit details
    Browse the repository at this point in the history

Commits on Jul 7, 2024

  1. Fix: Corrections from Matthew's review

    - Use `format!` for repr method in `InstructionProperties`
    - Rename `Variable` variant of `TargetInstruction` to `Variadic`.
    - Remove `internal_name` attribute from `TargetOperation`.
    - Remove `VariableOperation` class.
    - Use `u32` for `granularity`, `pulse_alignment`, and `acquire_alignment`.
    - Use `Option` to store nullable `concurrent_measurements.
    - Use `&str` instead of `String` for most function arguments.
    - Use `swap_remove` to deallocate items from the provided `properties` map in `add_instruction`.
    - Avoid cloning instructions, use `to_object()` instead.
    - Avoid using `.to_owned()`, use `.clone()` instead.
    - Remove mention of `RandomState`, use `ahash::HashSet` instead.
    - Move parameter check to python in `instruction_supported`.
    - Avoid exposing private attributes, use the available ones instead.
    - Filter out `Varidadic` Instructions as they're not supported in rust.
    - Use peekable iterator to peak at the next qargs in `generate_non_global_op_names`.
    - Rename `qarg_set` to `deduplicated_qargs` in `generate_non_global_op_names`.
    - Return iterator instances instead of allocated `Vec`.
    - Add `python_compare` and `python_is_instance` to perform object comparison with objects that satisfy the `ToPyObject` trait.
    - Other small tweaks and fixes.
    raynelfss committed Jul 7, 2024
    Configuration menu
    Copy the full SHA
    79752ee View commit details
    Browse the repository at this point in the history

Commits on Jul 8, 2024

  1. Configuration menu
    Copy the full SHA
    7c9cd9d View commit details
    Browse the repository at this point in the history

Commits on Jul 9, 2024

  1. Configuration menu
    Copy the full SHA
    9e1e111 View commit details
    Browse the repository at this point in the history

Commits on Jul 10, 2024

  1. Implement a nullable dict-like structure for IndexMap (#2)

    * Initial: Implement a nullable dict-like structure for IndexMap
    
    * FIx: Erroneous item extraction from Python
    - Fix error that caused `None` values to be ignored from `None` keys.
    - Removed mutability from rust function argument in `add_instruction`.
       - Object is mutably referenced after option unwrapping.
    - Add missing header in `nullable_index_map.rs`.
    - Add Clone as a `K` and/or `V` constraint in some of the iterators.
    - Remove `IntoPy` constraint from `NullableIndexMap<K, V>`.
    - Add `ToPyObject` trait to `NullableIndexMap<K, V>`.
    
    * Fix: inplace modification of Python dict.
    - Perform `None` extraction from rust.
    - Revert changes to `Target.py`
    
    * Fix: Avoid double iteration by using filter_map.
    
    * Docs: Add inline comments.
    
    * Fix: More specific error message in `NullableIndexMap`
    raynelfss authored Jul 10, 2024
    Configuration menu
    Copy the full SHA
    4f24322 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    b0506d5 View commit details
    Browse the repository at this point in the history

Commits on Jul 11, 2024

  1. Configuration menu
    Copy the full SHA
    adc0231 View commit details
    Browse the repository at this point in the history

Commits on Jul 15, 2024

  1. Fix: Use Mapping as the metaclass for Target

    - Minor corrections from Matthew's review.
    raynelfss committed Jul 15, 2024
    Configuration menu
    Copy the full SHA
    69cbc4e View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    743c55a View commit details
    Browse the repository at this point in the history

Commits on Jul 16, 2024

  1. Fix: Make Target crate-private.

    - Due to the private nature of `NullableIndexMap`, the `Target` has to be made crate private.
    - Add temporary`allow(dead_code)` flag for the unused `Target` and `NullableIndexMap` methods.
    - Fix docstring of `Target` struct.
    - Fix docstring of `add_instruction`.
    - Make several python-only operations public so they can be used with other `PyClass` instances as long as they own the gil.
    - Modify `py_instruction_supported` to accept bound objects.
    - Use rust-native functions for some of the instance properties.
    - Rewrite `instruction` to return parameters as slice.
    - `operation_names` returns an `ExactSizeIterator`.
    - All rust-native methods that return an `OperationType` object, will return a `NormalOperation` instance which includes the `OperationType` and the parameters.
    raynelfss committed Jul 16, 2024
    Configuration menu
    Copy the full SHA
    54734f0 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    d5392ea View commit details
    Browse the repository at this point in the history

Commits on Jul 23, 2024

  1. Fix: Comments from Matthew's review

    - Mention duplication in docstring for rust Target.
    - Use f"{*:g}" to avoid printing the floating point for 0 in `Target`'s repr method.
    - Add note mentioning future unit-tests in rust.
    raynelfss committed Jul 23, 2024
    Configuration menu
    Copy the full SHA
    367d711 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    e7296ba View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    f6e8189 View commit details
    Browse the repository at this point in the history

Commits on Jul 24, 2024

  1. Configuration menu
    Copy the full SHA
    96bd389 View commit details
    Browse the repository at this point in the history
  2. Fix: Adapt to Qiskit#12730

    raynelfss committed Jul 24, 2024
    Configuration menu
    Copy the full SHA
    70eafce View commit details
    Browse the repository at this point in the history