qiboteam / qibosoq Goto Github PK
View Code? Open in Web Editor NEWQibo server for Qick
Home Page: https://qibo.science
License: Apache License 2.0
Qibo server for Qick
Home Page: https://qibo.science
License: Apache License 2.0
When an error arise during the execution now the server raise an error and does not send anything to the client.
The client then gets an error related to not having received any response.
It should be fairly easy to send the error to the client so that the user can actually see what is the problem without looking into the logfile
Here is a complete list of lines where a pylint or mypy exception was added:
qibosoq/src/qibosoq/rfsoc_server.py
Line 78 in b8bc0d2
qibosoq/src/qibosoq/rfsoc_server.py
Line 136 in b8bc0d2
qibosoq/src/qibosoq/components/base.py
Line 57 in b8bc0d2
qibosoq/src/qibosoq/programs/base.py
Lines 61 to 62 in b8bc0d2
qibosoq/src/qibosoq/programs/base.py
Line 241 in b8bc0d2
qibosoq/src/qibosoq/programs/sweepers.py
Line 24 in b8bc0d2
It would be nice to fix these, but there is no urgency
As discussed the documentation should include:
As you can see in the documentation (https://qibo.science/qibosoq/latest/getting-started/tutorials.html), a client needs to open a server communication following a very precise structure, it will be nice to have directly in qibosoq few function that could be common for different clients:
Following the discussion in #11:
the actual execution makes your package an application, but it is rather weird if you then deploy it as a package: how would you run after installing with pip install qibosoq? (solution python /path/to/env/lib/python3.x/site-packages/qibosoq/rfsoc_server.py... not the best...)
I think we could also add, linked to this problem, executables like qibocal has (qq
, qq-auto
...)
There is something weird happening with the raw acquisition.
If I set the ADC channel to 0 I don't obtain any good result with the time of flight routine (both using the one in qibocal and the qick one), with ADC 1 perfectly sensible results.
---> I'd say then that I connected the ADC to channel 1.
If I execute resonator spectroscopy I do not obtain good results with ADC1, while ADC0 (that was the one that I though I connected) works perfectly.
---> I'd say then that I connected the ADC to channel 0.
The only difference of the two routines is in the acquisition, where I use acquire
for standard acquisition and acquire_decimated
for raw acquisition. I didn't have much time to check what the problem really is so I'm writing this issue for now
Running mypy src
on qibolab, I get various errors. Among them, one is:
src/qibolab/instruments/rfsoc/driver.py:8: error:
Skipping analyzing "qibosoq": module is installed, but missing library stubs or py.typed marker [import]
Clearly it's not a big problem, but why is it like this? Should we do something to fix it?
I think adding a py.typed
file to src/qibosoq
fixed the problem, but I don't have much experience and I don't know if this is something to do.
Do you, @AleCandido, know something more about this?
In light of a faster iterative workflow, I'd propose to release wheels for each tag, essentially replacing github.event_name == 'release' && github.event.action == 'published'
in:
qibosoq/.github/workflows/deploy.yml
Line 23 in af13fbb
github.event_name == 'push' && startsWith(github.ref, 'refs/tags/')
.
and changing the event:
qibosoq/.github/workflows/deploy.yml
Lines 3 to 8 in af13fbb
on:
push:
now the dependency on qick is fixed to version 0.2.135
, updating it to the newest version (that does not add new capabilities, but does some refactoring) causes some errors
If we update the lock file the following issue should be solved: https://github.com/qiboteam/qibosoq/security/dependabot/3
This issue mirrors qiboteam/qibolab#388
The definition of pulse in qick and qibolab is different so there are some errors
Custom pulses are needed for doing optimal control
As you can see here (deploy docs report), sphinx is not able to compile the documentation of rfsoc_server.py
because of the QickSoc
object.
I already had a similar problem (sphinx could not initialize it, because not on board), but I thought that the problem was solved with autodoc_mock_imports = ["qick", "qick.QickSoc"]
in the doc conf.py
file. Obviously, I was wrong
Every code example in the documentation should be properly tested
We should try to avoid typos on tags, e.g. v.0.0.3 instead of v0.0.3. After each release the version in pyproject.yaml should be updated.
Ideally, we would like to deploy this package to pypi so qibolab can rely on that for quick.
Following the discussion in #11
The QickSoc
object is global and we should instead pass it as an argument to the handler
Ok, I guess that there has been a problem in the transition: since they are now generated, I would gitignore these files.
Provided that, in a fresh clone (like it happens in the CI) they will always be generated.
If instead you're generating locally, we can add a task (e.g. to Poethepoet) that remove that folder before generating docs. When you're working on the docs, and not on the docstrings, there is no need to regenerate it every time. Otherwise, you'll just use the regenerating task.
Originally posted by @AleCandido in #29 (comment)
Hello @stavros11 @AleCandido, sorry to bother you but I need your expertise :-)
Is this line wrong for some reason?
qibosoq/src/qibosoq/qick_programs.py
Line 463 in 2e46ec7
I was getting an error from this line saying that Sweeper object is not iterable
so I stopped the server, added some log.info before (printing sweepers and type(sweepers) I think) and the error disappeared. Than I removed the log.info and now there is no error...
Is this line of code "unsafe" for some reason or have you any idea of why/how something like this could have happened?
I've just noticed we've never tagged Qibosoq.
Since it's proven working, and we start using this even in other places, I'd suggest tagging the current status of main
(once properly tested), and release 0.0.1
on PyPI.
Hi, this is just a list of features and modifications that I would like to implement in the future.
They have different priorities and are not in any particular order but still would be nice to have them.
(also I wanted to try the tasklist)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.