tequila-basic 1.9.6__py3-none-any.whl → 1.9.7__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -46,10 +46,7 @@ class QCircuit():
46
46
  Convenience: see src/tequila/circuit/qpic.py - export_to for more
47
47
  Parameters
48
48
  """
49
- # this way we allow calling U.export_to("asd.png") instead of having to specify U.export_to(filename="asd.png")
50
- if "circuit" not in kwargs:
51
- kwargs["circuit"]=self
52
- return export_to(*args, **kwargs)
49
+ return export_to(self, *args, **kwargs)
53
50
 
54
51
  @property
55
52
  def moments(self):
@@ -389,7 +386,7 @@ class QCircuit():
389
386
  for k, v in other._parameter_map.items():
390
387
  self._parameter_map[k] += [(x[0] + offset, x[1]) for x in v]
391
388
 
392
- self._gates += other.gates
389
+ self._gates += copy.deepcopy(other.gates)
393
390
  self._min_n_qubits = max(self._min_n_qubits, other._min_n_qubits)
394
391
 
395
392
  return self
@@ -1737,7 +1737,7 @@ class QuantumChemistryBase:
1737
1737
 
1738
1738
  def compute_rdms(self, U: QCircuit = None, variables: Variables = None, spin_free: bool = True,
1739
1739
  get_rdm1: bool = True, get_rdm2: bool = True, ordering="dirac", use_hcb: bool = False,
1740
- rdm_trafo: QubitHamiltonian = None, decompose=None):
1740
+ rdm_trafo: QubitHamiltonian = None, evaluate=True):
1741
1741
  """
1742
1742
  Computes the one- and two-particle reduced density matrices (rdm1 and rdm2) given
1743
1743
  a unitary U. This method uses the standard ordering in physics as denoted below.
@@ -1768,7 +1768,10 @@ class QuantumChemistryBase:
1768
1768
  rdm_trafo :
1769
1769
  The rdm operators can be transformed, e.g., a^dagger_i a_j -> U^dagger a^dagger_i a_j U,
1770
1770
  where U represents the transformation. The default is set to None, implying that U equas the identity.
1771
-
1771
+ evaluate :
1772
+ if true, the tequila expectation values are evaluated directly via the tq.simulate command.
1773
+ the protocol is optimized to avoid repetation of wavefunction simulation
1774
+ if false, the rdms are returned as tq.QTensors
1772
1775
  Returns
1773
1776
  -------
1774
1777
  """
@@ -1891,13 +1894,14 @@ class QuantumChemistryBase:
1891
1894
  ops += [op]
1892
1895
  return ops
1893
1896
 
1894
- def _assemble_rdm1(evals) -> numpy.ndarray:
1897
+ def _assemble_rdm1(evals, rdm1=None) -> numpy.ndarray:
1895
1898
  """
1896
1899
  Returns spin-ful or spin-free one-particle RDM built by symmetry conditions
1897
1900
  Same symmetry with or without spin, so we can use the same function
1898
1901
  """
1899
1902
  N = n_MOs if spin_free else n_SOs
1900
- rdm1 = numpy.zeros([N, N])
1903
+ if rdm1 is None:
1904
+ rdm1 = numpy.zeros([N, N])
1901
1905
  ctr: int = 0
1902
1906
  for p in range(N):
1903
1907
  for q in range(p + 1):
@@ -1908,10 +1912,11 @@ class QuantumChemistryBase:
1908
1912
 
1909
1913
  return rdm1
1910
1914
 
1911
- def _assemble_rdm2_spinful(evals) -> numpy.ndarray:
1915
+ def _assemble_rdm2_spinful(evals, rdm2=None) -> numpy.ndarray:
1912
1916
  """ Returns spin-ful two-particle RDM built by symmetry conditions """
1913
1917
  ctr: int = 0
1914
- rdm2 = numpy.zeros([n_SOs, n_SOs, n_SOs, n_SOs])
1918
+ if rdm2 is None:
1919
+ rdm2 = numpy.zeros([n_SOs, n_SOs, n_SOs, n_SOs])
1915
1920
  for p in range(n_SOs):
1916
1921
  for q in range(p):
1917
1922
  for r in range(n_SOs):
@@ -1933,10 +1938,11 @@ class QuantumChemistryBase:
1933
1938
 
1934
1939
  return rdm2
1935
1940
 
1936
- def _assemble_rdm2_spinfree(evals) -> numpy.ndarray:
1941
+ def _assemble_rdm2_spinfree(evals, rdm2=None) -> numpy.ndarray:
1937
1942
  """ Returns spin-free two-particle RDM built by symmetry conditions """
1938
1943
  ctr: int = 0
1939
- rdm2 = numpy.zeros([n_MOs, n_MOs, n_MOs, n_MOs])
1944
+ if rdm2 is None:
1945
+ rdm2 = numpy.zeros([n_MOs, n_MOs, n_MOs, n_MOs])
1940
1946
  for p, q, r, s in product(range(n_MOs), repeat=4):
1941
1947
  if p * n_MOs + q >= r * n_MOs + s and (p >= q or r >= s):
1942
1948
  rdm2[p, q, r, s] = evals[ctr]
@@ -2012,18 +2018,25 @@ class QuantumChemistryBase:
2012
2018
  # Transform operator lists to QubitHamiltonians
2013
2019
  if (not use_hcb):
2014
2020
  qops = [_get_qop_hermitian(op) for op in qops]
2015
-
2021
+
2016
2022
  # Compute expected values
2017
- if rdm_trafo is None:
2018
- if decompose is not None:
2019
- print("MANIPULATED")
2020
- X = decompose(H=qops, U=U)
2021
- evals = simulate(X, variables=variables)
2023
+ rdm1 = None
2024
+ rdm2 = None
2025
+ from tequila import QTensor
2026
+ if evaluate:
2027
+ if rdm_trafo is None:
2028
+ evals = simulate(ExpectationValue(H=qops, U=U, shape=[len(qops)]), variables=variables)
2022
2029
  else:
2030
+ qops = [rdm_trafo.dagger()*qops[i]*rdm_trafo for i in range(len(qops))]
2023
2031
  evals = simulate(ExpectationValue(H=qops, U=U, shape=[len(qops)]), variables=variables)
2024
2032
  else:
2025
- qops = [rdm_trafo.dagger()*qops[i]*rdm_trafo for i in range(len(qops))]
2026
- evals = simulate(ExpectationValue(H=qops, U=U, shape=[len(qops)]), variables=variables)
2033
+ if rdm_trafo is None:
2034
+ evals = [ExpectationValue(H=x, U=U) for x in qops]
2035
+ N = n_MOs if spin_free else n_SOs
2036
+ rdm1 = QTensor(shape=[N,N])
2037
+ rdm2 = QTensor(shape=[N, N, N, N])
2038
+ else:
2039
+ raise TequilaException("compute_rdms: rdm_trafo was set but evaluate flag is False (not supported)")
2027
2040
 
2028
2041
  # Assemble density matrices
2029
2042
  # If self._rdm1, self._rdm2 exist, reset them if they are of the other spin-type
@@ -2044,11 +2057,11 @@ class QuantumChemistryBase:
2044
2057
  len_1 = 0
2045
2058
  evals_1, evals_2 = evals[:len_1], evals[len_1:]
2046
2059
  # Build matrices using the expectation values
2047
- self._rdm1 = _assemble_rdm1(evals_1) if get_rdm1 else self._rdm1
2060
+ self._rdm1 = _assemble_rdm1(evals_1, rdm1=rdm1) if get_rdm1 else self._rdm1
2048
2061
  if spin_free or use_hcb:
2049
- self._rdm2 = _assemble_rdm2_spinfree(evals_2) if get_rdm2 else self._rdm2
2062
+ self._rdm2 = _assemble_rdm2_spinfree(evals_2, rdm2=rdm2) if get_rdm2 else self._rdm2
2050
2063
  else:
2051
- self._rdm2 = _assemble_rdm2_spinful(evals_2) if get_rdm2 else self._rdm2
2064
+ self._rdm2 = _assemble_rdm2_spinful(evals_2, rdm2=rdm2) if get_rdm2 else self._rdm2
2052
2065
 
2053
2066
  if get_rdm2:
2054
2067
  rdm2 = NBodyTensor(elems=self.rdm2, ordering="dirac", verify=False)
@@ -356,15 +356,23 @@ class BackendCircuit():
356
356
  raise TequilaException("only product states as initial states accepted")
357
357
  initial_state = list(initial_state.keys())[0].integer
358
358
 
359
- all_qubits = [i for i in range(self.abstract_circuit.n_qubits)]
359
+ all_qubits = list(range(self.abstract_circuit.n_qubits))
360
360
  active_qubits = self.qubit_map.keys()
361
361
 
362
- # maps from reduced register to full register
363
- keymap = KeyMapSubregisterToRegister(subregister=active_qubits, register=all_qubits)
362
+ # Keymap is only necessary if not all qubits are active
363
+ keymap_required = sorted(active_qubits) != all_qubits
364
364
 
365
- result = self.do_simulate(variables=variables, initial_state=keymap.inverted(initial_state).integer, *args,
365
+ if keymap_required:
366
+ # maps from reduced register to full register
367
+ keymap = KeyMapSubregisterToRegister(subregister=active_qubits, register=all_qubits)
368
+
369
+ mapped_initial_state = keymap.inverted(initial_state).integer if keymap_required else int(initial_state)
370
+ result = self.do_simulate(variables=variables, initial_state=mapped_initial_state, *args,
366
371
  **kwargs)
367
- result.apply_keymap(keymap=keymap, initial_state=initial_state)
372
+
373
+ if keymap_required:
374
+ result.apply_keymap(keymap=keymap, initial_state=initial_state)
375
+
368
376
  return result
369
377
 
370
378
  def sample(self, variables, samples, read_out_qubits=None, circuit=None, *args, **kwargs):
@@ -1,6 +1,7 @@
1
1
  from enum import Enum
2
2
  from typing import List
3
3
  from functools import total_ordering
4
+ from math import ceil, log2
4
5
 
5
6
 
6
7
  class BitNumbering(Enum):
@@ -35,7 +36,7 @@ class BitString:
35
36
 
36
37
  def update_nbits(self):
37
38
  current = self.nbits
38
- min_needed = len(format(self._value, 'b'))
39
+ min_needed = ceil(log2(self._value + 1))
39
40
  self._nbits = max(current, min_needed)
40
41
  return self
41
42
 
@@ -177,15 +178,23 @@ class BitStringLSB(BitString):
177
178
  return BitNumbering.LSB
178
179
 
179
180
 
181
+ def _reverse_int_bits(x: int, nbits: int) -> int:
182
+ if nbits is None:
183
+ nbits = x.bit_length()
184
+ assert nbits <= 32
185
+
186
+ x = ((x & 0x55555555) << 1) | ((x & 0xAAAAAAAA) >> 1)
187
+ x = ((x & 0x33333333) << 2) | ((x & 0xCCCCCCCC) >> 2)
188
+ x = ((x & 0x0F0F0F0F) << 4) | ((x & 0xF0F0F0F0) >> 4)
189
+ x = ((x & 0x00FF00FF) << 8) | ((x & 0xFF00FF00) >> 8)
190
+ x = ((x & 0x0000FFFF) << 16) | ((x & 0xFFFF0000) >> 16)
191
+ return x >> (32 - nbits)
192
+
193
+
180
194
  def initialize_bitstring(integer: int, nbits: int = None, numbering_in: BitNumbering = BitNumbering.MSB,
181
195
  numbering_out: BitNumbering = BitNumbering.MSB):
182
- if numbering_in == BitNumbering.MSB:
183
- if numbering_out == BitNumbering.MSB:
184
- return BitString.from_int(integer=integer, nbits=nbits)
185
- else:
186
- return BitString.from_binary(binary=BitStringLSB.from_int(integer=integer, nbits=nbits).binary, nbits=nbits)
196
+ integer = _reverse_int_bits(integer, nbits) if numbering_in != numbering_out else integer
197
+ if numbering_out == BitNumbering.MSB:
198
+ return BitString.from_int(integer=integer, nbits=nbits)
187
199
  else:
188
- if numbering_out == BitNumbering.LSB:
189
- return BitStringLSB.from_int(integer=integer, nbits=nbits)
190
- else:
191
- return BitStringLSB.from_binary(binary=BitString.from_int(integer=integer, nbits=nbits).binary, nbits=nbits)
200
+ return BitStringLSB.from_int(integer=integer, nbits=nbits)
tequila/version.py CHANGED
@@ -1,2 +1,2 @@
1
- __version__ = "1.9.6"
1
+ __version__ = "1.9.7"
2
2
  __author__ = "Tequila Developers "
@@ -145,18 +145,12 @@ class QubitWaveFunction:
145
145
  maxkey = len(arr) - 1
146
146
  maxbit = initialize_bitstring(integer=maxkey, numbering_in=numbering, numbering_out=cls.numbering).nbits
147
147
  for ii, v in enumerate(arr):
148
- i = initialize_bitstring(integer=ii, nbits=maxbit, numbering_in=numbering, numbering_out=cls.numbering)
149
- if not numpy.isclose(abs(v), 0.0, atol=threshold):
148
+ if abs(v) > threshold:
149
+ i = initialize_bitstring(integer=ii, nbits=maxbit, numbering_in=numbering, numbering_out=cls.numbering)
150
150
  key = i if keymap is None else keymap(i)
151
151
  state[key] = v
152
152
  result = QubitWaveFunction(state, n_qubits=n_qubits)
153
153
 
154
- if cls.numbering != numbering:
155
- if cls.numbering == BitNumbering.MSB:
156
- result.apply_keymap(keymap=KeyMapLSB2MSB())
157
- else:
158
- result.apply_keymap(keymap=KeyMapMSB2LSB())
159
-
160
154
  return result
161
155
 
162
156
  @classmethod
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: tequila-basic
3
- Version: 1.9.6
3
+ Version: 1.9.7
4
4
  Summary: A High-Level Abstraction Framework for Quantum Algorithms
5
5
  Home-page: https://github.com/tequilahub/tequila
6
6
  Author: Tequila Developers
@@ -8,13 +8,13 @@ Author-email: jakob.kottmann@gmail.com
8
8
  Description-Content-Type: text/markdown
9
9
  License-File: LICENSE
10
10
  Requires-Dist: numpy
11
- Requires-Dist: scipy <1.11
11
+ Requires-Dist: scipy
12
12
  Requires-Dist: sympy
13
13
  Requires-Dist: autograd
14
14
  Requires-Dist: setuptools
15
15
  Requires-Dist: pytest
16
- Requires-Dist: openfermion ~=1.0
17
- Requires-Dist: dataclasses ; python_version < "3.7"
16
+ Requires-Dist: openfermion~=1.0
17
+ Requires-Dist: dataclasses; python_version < "3.7"
18
18
 
19
19
  [![License: MIT](https://img.shields.io/badge/License-MIT-lightgrey.svg)](LICENCE) [![DOI](https://zenodo.org/badge/259718912.svg)](https://zenodo.org/badge/latestdoi/259718912) [![PyPI version](https://badge.fury.io/py/tequila-basic.svg)](https://badge.fury.io/py/tequila-basic) ![CI](https://github.com/tequilahub/tequila/actions/workflows/ci_basic.yml/badge.svg)
20
20
 
@@ -24,11 +24,14 @@ Tequila is an abstraction framework for (variational) quantum algorithms.
24
24
  It operates on abstract data structures allowing the formulation, combination, automatic differentiation and optimization of generalized objectives.
25
25
  Tequila can execute the underlying quantum expectation values on state of the art simulators as well as on real quantum devices.
26
26
 
27
+ # Getting Started
28
+
29
+ Get started with our collection of
30
+ - *[Tutorials](https://thuytr18.github.io/tequila-tutorials-beta/tutorials.html)*
31
+
32
+ Further sources:
27
33
  - [overview article](https://arxiv.org/abs/2011.03057)
28
34
  - [tequila in a nutshell](https://kottmanj.github.io/tequila-in-a-nutshell/#/)
29
- - [getting started](https://jakobkottmann.com/posts/tq-get-started/)
30
- - [circuits in tequila](https://jakobkottmann.com/posts/tq-circuits/)
31
- - [notebook collection](https://github.com/tequilahub/tequila-tutorials)
32
35
  - [talks and slides](https://kottmanj.github.io/talks_and_material/)
33
36
 
34
37
  # Installation
@@ -1,6 +1,6 @@
1
1
  tequila/__init__.py,sha256=FV8-j7GEw_VYadsZUp3M2mGRQxVUYYG3W1jiI6in3CY,1959
2
2
  tequila/autograd_imports.py,sha256=t7V5uYaI0GzjD7pSjkYtiaj3BzSvkm_RL2KcYfNwNhM,1529
3
- tequila/version.py,sha256=eF54kEK_euvFMukAbk5bfXdISBhBIxw4DzJuY9f-z3c,57
3
+ tequila/version.py,sha256=z4HYHQFs8VpWS58QcyrsXtt4iksPCVNRgVjk5lCg8Fo,57
4
4
  tequila/apps/__init__.py,sha256=GJb04napv8AAx5EHxS5C1CMv9kxQeu7aA-ZMWk6X_eQ,1623
5
5
  tequila/apps/_unary_state_prep_impl.py,sha256=SzRtI0Nx29ODygvYYdC1NnSTCL70wY7NTAvqhiwpMDs,21757
6
6
  tequila/apps/unary_state_prep.py,sha256=QCrD9Ty2RkXc1Mh_MitFPIdaPs_fLxp_dtWVBZi0tSE,9403
@@ -13,7 +13,7 @@ tequila/apps/robustness/helpers.py,sha256=t8VgwMfgrhVaa0sNYaxfCIHsEQXL4WAEaT-UJG
13
13
  tequila/apps/robustness/interval.py,sha256=m3D1wBRTLRpGQdnabzcDrlxWqN0uCf80NG-enbZrcoY,24735
14
14
  tequila/circuit/__init__.py,sha256=ZgoUEjU_NggxjKYkJjh5aO-6VdUjnO5CLxKB44rHzQc,301
15
15
  tequila/circuit/_gates_impl.py,sha256=iB40Sg9l9UoCCayu0l4vGjgvEHUVVbXMaGdUtXIHa1w,17821
16
- tequila/circuit/circuit.py,sha256=u1qwDFNrZspgea4BFcxwG-hk43ZKAtO2GVCchuctu4s,32044
16
+ tequila/circuit/circuit.py,sha256=5XqOddRAQMgjO_zyRDHQvtGyWt8gBW0seorejsV9KK4,31874
17
17
  tequila/circuit/compiler.py,sha256=fsHnnNZo43VWUl_n34P21b4GAi7k2kwoYdx0xlbAuZY,32685
18
18
  tequila/circuit/gates.py,sha256=buNzNZaflRzVFe1oihCprUBZVL5KcZXyd_kqiWkNbTo,35923
19
19
  tequila/circuit/gradient.py,sha256=Y4dNL6nkZUEkKJvaA3hxaSEa8_b_3XZwxy3j8tGsOmA,10465
@@ -54,10 +54,10 @@ tequila/quantumchemistry/madness_interface.py,sha256=ivwDoaUDyAB6lJoFri0pZpvOZbi
54
54
  tequila/quantumchemistry/orbital_optimizer.py,sha256=P_y4Q1qK-C46wgBjL4FBnSHeVSoKlzmkCG5eQWFU4_k,12376
55
55
  tequila/quantumchemistry/psi4_interface.py,sha256=syNaDvlSmCsyB4f7idn3VGbMKyKo83vJHD5y5LpHwaM,29953
56
56
  tequila/quantumchemistry/pyscf_interface.py,sha256=XgecUnKKg2rGiKqsYCJnDQ89ekkDkKuwc3qHULLMYck,6152
57
- tequila/quantumchemistry/qc_base.py,sha256=x8bQUW35rlHeqd2NheWQrr7cDWYf_niU4FOR5HY2Dgk,106384
57
+ tequila/quantumchemistry/qc_base.py,sha256=IqPQ-FylaOsKtiLur8QWnvMqFBa_X_i3rdjMHSgQ9fA,107121
58
58
  tequila/simulators/__init__.py,sha256=VFw4sJIt4Zc0-__eYnksN8Ku9qMhbPpHJEkXMWUiD30,4
59
59
  tequila/simulators/simulator_api.py,sha256=Rvaljb2yFVMLHzj7ImzMCiTbY1fN59wcxFrE67n-QcU,24413
60
- tequila/simulators/simulator_base.py,sha256=93d-f4fNkJ2CtpL9OpgKcypmZH96Mdd9ESdZYn9jH48,33174
60
+ tequila/simulators/simulator_base.py,sha256=7Qbz1nqyVHMowSAjo11kavLFCDZbrLjCp-0H5wfX9GU,33459
61
61
  tequila/simulators/simulator_cirq.py,sha256=z8G3dtZluaQZWPaNs4o3SBKfC33GClC-nplVOyhI1sg,16535
62
62
  tequila/simulators/simulator_pyquil.py,sha256=Xm8fDg9PTFOg3apzd0T8hNKHy4sFrJIbSdnLtvtm-HM,24240
63
63
  tequila/simulators/simulator_qibo.py,sha256=evOGd_-uyUQaQu60K02KIIqtTqjn1jW6XS9ux2TsC9M,25095
@@ -71,15 +71,15 @@ tequila/tools/convenience.py,sha256=9WYQJvx5i2QwQG8c7lssYTUv5hzW8h16JTr1GHxYf18,
71
71
  tequila/tools/qng.py,sha256=p19A1rcKo06DAyBVUCQzNhwIGni6eAT6IGPnEPhKa4Y,21326
72
72
  tequila/tools/random_generators.py,sha256=UwkDMmNxxSPgaH1LNBswZUiHnLDd8arI3F5QshfBtBY,3417
73
73
  tequila/utils/__init__.py,sha256=nlulDMHcq-XyBZf3NPx2bn_tcixi2mvhRc6MhU9TBWI,317
74
- tequila/utils/bitstrings.py,sha256=b2qaicAuDvzb9guTCZvQ1XCgN3dHaJuQ1nlubDgatD4,5689
74
+ tequila/utils/bitstrings.py,sha256=wk-xz1k6oDAWoLZGHGMJlbuR_L2nqgJ552HEkOZDXYY,5890
75
75
  tequila/utils/exceptions.py,sha256=QK7AcDO2-7Itr8Aw6rLP_WtSkH6rfT8PHWcvNM6sQnc,1188
76
76
  tequila/utils/joined_transformation.py,sha256=R2-aMTi6h7ZnjYUnX6cvFuPEQwgf49W0w33q6018qdc,2013
77
77
  tequila/utils/keymap.py,sha256=RgQzeHEfRVee0-uoH-QsLYsGsXyMhEp3n33KCH-EV2k,3735
78
78
  tequila/utils/misc.py,sha256=e62ASkFReaLJQXnBXzyYukzXZnXNoURsM1luoMeIXiE,919
79
79
  tequila/wavefunction/__init__.py,sha256=q4DVL0lGFg03PogRMYA6S8MQqqmLYQiU9VNOF-YQxfQ,50
80
- tequila/wavefunction/qubit_wavefunction.py,sha256=16Y9vRj6Yc6sBAKRUHVXJG4lJLDjWyN1b5fugf2LAmI,11881
81
- tequila_basic-1.9.6.dist-info/LICENSE,sha256=oG1FtUav5_xrym9ByiG5emJDQRcbnAfTB08fRV9TCiE,1114
82
- tequila_basic-1.9.6.dist-info/METADATA,sha256=vtmnWlAqZZdQ0Rylr2_fgVF66QaUZOsBY9uOZGYHM_w,19409
83
- tequila_basic-1.9.6.dist-info/WHEEL,sha256=y4mX-SOX4fYIkonsAGA5N0Oy-8_gI4FXw5HNI1xqvWg,91
84
- tequila_basic-1.9.6.dist-info/top_level.txt,sha256=VBH0gl6mDMbcLHKlO0yEAqtcq08DqBHz4gRJ9jafl5w,8
85
- tequila_basic-1.9.6.dist-info/RECORD,,
80
+ tequila/wavefunction/qubit_wavefunction.py,sha256=Am9ry-a4oSQwr2BsK0dmqmB9wazEBd-VROMIsivuCYY,11629
81
+ tequila_basic-1.9.7.dist-info/LICENSE,sha256=oG1FtUav5_xrym9ByiG5emJDQRcbnAfTB08fRV9TCiE,1114
82
+ tequila_basic-1.9.7.dist-info/METADATA,sha256=MLKuPu0CY9BprwwglK062V6shStUvEBGVkEkKqY4i-8,19339
83
+ tequila_basic-1.9.7.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
84
+ tequila_basic-1.9.7.dist-info/top_level.txt,sha256=VBH0gl6mDMbcLHKlO0yEAqtcq08DqBHz4gRJ9jafl5w,8
85
+ tequila_basic-1.9.7.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (70.2.0)
2
+ Generator: setuptools (75.1.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5