diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 0000000..5d8aebf --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1,3 @@ +# For now everyone gets added to all PRs by default. Fine while the PR velocity is small, we'll change if +# necessary as time goes on. +* @jfriel-oqc @keriksson-rosenqvist @owen-oqc @hamidelmaazouz @chemix-lunacy \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000..1665b1a --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,24 @@ +--- +name: Bug report +about: Create a report to help us improve +title: '' +labels: bug +assignees: '' + +--- + +**Describe the bug** +A clear and concise description of what happened. + +**Describe what you expected to happen** +A clear and concise description of what you wanted/expected to happen but didn't. + +**Add supporting information** +Provide as much information as possible that will allow us to help you. Including but not limited to: + +1. OS/library version. +2. Screenshots of an error or stack trace if you have one. +3. Input file used, or a snippit that causes the issue if you cannot share the full file. +4. The precise configuration options you used to run QAT-RPC. + +It is highly recommended you give _at least_ the above information, as this will help us help you. diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 0000000..fec6189 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,18 @@ +--- +name: Feature request +about: Suggest an idea for this project +title: '' +labels: enhancement +assignees: '' + +--- + +**Summarize your feature/enhancement** + +Give a descriptive summary of the feature/enhancement you would like to see. Try and be as precise as possible so the team can gauge whether it's something the team would like to see. + +**Specific details of what you would like to see** + +Describe the feature/enhancement in as much detail as you can, including supporting papers or external links that may act as better design references. + +The more information the better. diff --git a/.github/workflows/cla-assistant.yaml b/.github/workflows/cla-assistant.yaml new file mode 100644 index 0000000..bd916eb --- /dev/null +++ b/.github/workflows/cla-assistant.yaml @@ -0,0 +1,26 @@ +on: + issue_comment: + types: [created] + pull_request_target: + types: [opened,closed,synchronize] + +name: "CLA bot" + +jobs: + cla-acknowledgement: + runs-on: ubuntu-latest + name: "Check that the CLA has been acknowledged" + steps: + - name: "CLA Assistant" + if: (github.event.comment.body == 'recheck' || github.event.comment.body == 'I have read the Contributor License Agreement and I hereby accept the Terms.') || github.event_name == 'pull_request_target' + uses: cla-assistant/github-action@v2.3.0 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + PERSONAL_ACCESS_TOKEN : ${{ secrets.REPO_BOT_ACCESS_TOKEN }} + with: + branch: 'bot/data' + path-to-signatures: 'cla.json' + custom-allsigned-prcomment: 'All Contributors have signed the CLA.' + custom-pr-sign-comment: 'I have read the Contributor License Agreement and I hereby accept the Terms.' + allowlist: bot* + path-to-document: 'https://github.com/oqc-community/qat-rpc/blob/main/contributor_license_agreement.md' diff --git a/.gitignore b/.gitignore index 82f9275..8aecfe8 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,16 @@ __pycache__/ *.py[cod] *$py.class +# Swap files +**/*.sw[nop] + +# Log files +*.log +logs/ + +# PyCharm +.idea/ + # C extensions *.so diff --git a/CODE_OF_CONDUCT.rst b/CODE_OF_CONDUCT.rst new file mode 100644 index 0000000..d0f0c47 --- /dev/null +++ b/CODE_OF_CONDUCT.rst @@ -0,0 +1,87 @@ +Code of Conduct +===================== + +We, the community of contributors and maintainers, are dedicated to nurturing an atmosphere of inclusivity and respect within this project. +Our objective is to establish a space which welcomes individuals of all backgrounds and identities, and is safe and respectful for everyone regardless of ethnicity, +gender identity and expression, level of experience, age, disability, nationality, personal appearance, race, religion, or sexual orientation. + +| + +-------------------- +Our Commitment +-------------------- + +With the aim of nurturing an open and inviting space, we commit to: + +- Respectfulness: Interacting with consideration and kindness, recognizing the worth of each person's input. +- Inclusiveness: Embracing contributions from all individuals of all backgrounds and actively seeking involvement from + those who have been traditionally underrepresented in the field. +- Patience: Demonstrating understanding and empathy towards varying levels of experience and viewpoints. +- Constructive Interaction: Engaging in conversations that offer positive and productive outcomes. + +| + +----------------------- +Unacceptable Behaviour +----------------------- + +Actions that will not be tolerated include, but are not limited to: + +- Harassment: Engaging in discriminatory behaviour, intimidation, or any form of harassment. +- Derogatory Remarks: Making negative or disrespectful comments that hinder constructive discussions. +- Personal Attacks: Undermining a collaborative environment through attacking or belittling others. +- Spam and Irrelevance: Distributing unsolicited content or repeatedly sharing irrelevant information. +- Discrimination in Any Form: Discriminating behaviour or conduct relating to, but not limited to, any of the + aforementioned characteristics. + +| + +----------------------- +Our Responsibilities +----------------------- + +The project maintainers are entrusted with upholding this code of conduct. +Enforcing this code is crucial for maintaining a positive, welcoming and productive environment. +Instances of inappropriate behaviour can be reported to the project team using this +`form `_ +All grievances will be reviewed confidentially, punctually and impartially. +The moderators have the authority to edit, remove, or decline comments, commits, code, issues, and other contributions +that conflict with this code of conduct. +Contributors who disregard this code may face temporary or permanent consequences, as determined by the project team. + +| + +----------------------- +Applicability +----------------------- + +This code of conduct is applicable within project spaces, encompassing project repositories, issue trackers, +communication channels, mailing lists, social media platforms and public events. + +| + +----------------------- +Enforcement guidelines +----------------------- + +The project team will use the following steps to enforce the standards of conduct. + +- Warning: In the case of a single incident, the project team will issue a warning to the offending party. +- Temporary Ban: If the offending party does not heed the warning and repeats behaviour which violates the code of + conduct, the offending party will be temporarily banned. + This will prohibit the offending party from any interaction with the community for a specified period of time. + Violating this may result in a permanent ban. +- Permanent Ban: Sustained behaviour which violates the code of conduct will not be tolerated and will result in a + permanent ban. + +Please note that the project team will at its absolute discretion, depending on the nature of the offence, decide the +appropriate consequences for the offending party and that the listed steps are only guidelines and may not necessarily +be applied in the presented order (e.g. a permanent ban can be issued without preceding warnings if the offence warrants +it). +If the project team bans a contributor and you consider this to be unjustified, please communicate this to the project +moderators in private by emailing `qat_moderators@oqc.tech `_. + + + + +. diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst new file mode 100644 index 0000000..d546df4 --- /dev/null +++ b/CONTRIBUTING.rst @@ -0,0 +1,122 @@ +Contributing to QAT-RPC +======================= + +First and foremost, thank you for considering contributing to QAT-RPC - an open-source, community maintained project. +We are very excited to have you and your ideas working to improve both the codebase and the community. +To begin, read the project overview and guidelines to help you quickly familiarise yourself with the project and the way +we do things. + +The areas you could contribute to QAT-RPC include: + +- Submitting bug reports and feature requests +- Contributing to the codebase (e.g. new features, improving the test suite etc.) +- Documentation +- Helping to answer questions which are asked in the discussion forum + +All contributions to QAT-RPC are governed by our +`code of conduct `_. + +| + +.. contents:: Table of Contents + :backlinks: none + +| + +------------------------- +Installation +------------------------- +To get started, see the Building from Source section of the +`README `_. + +| + +------------------------- +Pull Requests +------------------------- +To begin, fork this repository, make changes in your own fork, and then submit a pull request (PR). +All new code should have associated unit tests that validate implemented features and ensure the proper functionality of +the code. + +A PR must receive maintainer approval before it can be merged. We aim to review significant contributions within two weeks +and minor changes within a few days, but we cannot guarantee this will always be the case. We expect reviews to be carried +out respectfully and that a commitment to maintain a standard of excellence in the code base will be paramount. +If a pull request has become stale and inactive, the project team may choose to close the PR. +As an open source project, your patience is appreciated when waiting for PR reviews. + +| + +------------------------- +Your First Contribution +------------------------- +Now you are all set to start contributing to QAT-RPC! +If you are unsure where to start, please check out our 'good first issue' and 'help wanted' issues. +The 'good first issue' tasks will require only small changes to the code base and are intended to provide you with a smooth +accessible learning curve whilst familiarising yourself with QAT-RPC. +The 'help wanted' issues will require greater interaction/modifications to the codebase and are intended for more +experienced contributors. + +First-Timer Help +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +If you're entirely new to contributing to open source projects, some of the following helpful links may be useful to you: + +- For an overview of how to take part in an open-source project, please read + `this `_ +- Need some help with how to PR? Please visit this + `guide `_ +- Never had your code reviewed before? For information about how this process works, please click + `here `_ + +Please ask for help when you need it- after all, we were all beginners at first. + +| + +------------------------- +How to Report a Bug +------------------------- + +Security Vulnerabilities +~~~~~~~~~~~~~~~~~~~~~~~~ +If you believe you have found a security vulnerability, do not open an issue or report it publicly. +Instead, please email the security team at `qat_security@oqc.tech `_. Once a security vulnerability has +been reported, you should receive an acknowledgement in two working days. +If you suspect you have found a security issue but are unsure, please email the project team in any case. + + +Opening an Issue +~~~~~~~~~~~~~~~~~~~~~~ +If you believe you've found an issue and would like to raise it: + +- First check to see if your issue has already been fixed. If so, download the version with the fix and try again. +- Has it been raised before by someone else? If an issue is already open, see if you can add additional information to help diagnose or recreate the issue. +- Otherwise open an issue. We have an issue template set up so please use that + to guide you and give examples of the information we're looking for. The more precise details you provide the higher chance we'll be able to reproduce and fix the issue in + a decent timeframe. + +| + +------------------------- +New Features +------------------------- + +Before trying to add a new feature, open an `issue `_ or start a `discussion `_ with an overview of what you'd like to see. +This is to save disappointment as some features we will refuse because purely it doesn't fit with QAT-RPC as a whole or where we're currently going. + +Once a new feature has approval of the team as a whole you can start work on it and we'll support you where possible. If you do not want to work on it personally it'll go on the backlog and we'll get to it when possible. + +For ideas about where the project is heading, checkout the `issues `_ list +or the Roadmap in the `README `_. + +| + +------------------------- +Additional Information +------------------------- + +Unit Tests +~~~~~~~~~~~~~~~~~~~~~~ +QAT-RPC has an existing test suite, which can be found in the tests directory of the code base. +It is our policy that these tests should pass at all times, unless a test is skipped in which case justification should +be provided. +New features should be accompanied by a comprehensive test suite which makes sure that the feature is behaving as +intended, and that future merges do not unintentionally break this functionality. diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..0a635df --- /dev/null +++ b/LICENSE @@ -0,0 +1,13 @@ +BSD 3-Clause License + +Copyright 2023 © Oxford Quantum Circuits Ltd + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL OXFORD QUANTUM CIRCUITS, ITS SUBSIDARIES, OR AFFILIATES, BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/README.md b/README.md index 4d964ac..100a1a6 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,42 @@ -# qat-rpc -RPC tooling for QAT. +# QAT-RPC + +This package provides RPC (Remote Procedure Call) tooling for use with the OQC +[QAT](https://oqc-community.github.io/qat/main/index.html) (Quantum Assembly Toolchain) compiler and runtime. + +## Installation + +### PyPI + +The QAT-RPC package has not yet been released to PyPI. + +### Building from Source + +We use [poetry](https://python-poetry.org/) for dependency management and run on +[Python 3.8+](https://www.python.org/downloads/). +Once both of these are installed run this in the root folder to install all the dependencies that you need: `poetry install` + +### Contributing + +To take the first steps towards contributing to QAT-RPC, visit our +[contribution](https://github.com/oqc-community/qat-rpc/blob/main/CONTRIBUTING.rst) documents, which provides details about our +process. + +We also encourage new contributors to familiarise themselves with the +[code of conduct](https://github.com/oqc-community/qat-rpc/blob/main/CODE_OF_CONDUCT.rst) and to adhere to these +expectations. + +### Assistance + +For support, please reach out in the [discussions](https://github.com/oqc-community/qat-rpc/discussions) tab of this repository or file an [issue](https://github.com/oqc-community/qat-rpc/issues). + +### Licence + +This code in this repository is licensed under the BSD 3-Clause Licence. +Please see [LICENSE](https://github.com/oqc-community/qat-rpc/blob/main/LICENSE) for more information. + +### Feedback + +Please let us know your feedback and any suggestions by reaching out in [Discussions](https://github.com/oqc-community/qat-rpc/discussions>). +Additionally, to report any concerns or +[code of conduct](https://github.com/oqc-community/qat-rpc/blob/main/CODE_OF_CONDUCT.rst) violations please use this +[form](https://docs.google.com/forms/d/e/1FAIpQLSeyEX_txP3JDF3RQrI3R7ilPHV9JcZIyHPwLLlF6Pz7iGnocw/viewform?usp=sf_link). diff --git a/contributor_license_agreement.md b/contributor_license_agreement.md new file mode 100644 index 0000000..e0311a3 --- /dev/null +++ b/contributor_license_agreement.md @@ -0,0 +1,50 @@ + +## Contributor License Agreement (CLA) + +We are incredibly thankful for the contributions we receive from the community. + +If you would like to contribute to our project, you must first agree to our Contributor License Agreement (CLA). This allows a contributor to retain their ownership in the code submitted while granting us with the necessary legal rights to use that contribution. By contributing to OQC’s QAT-RPC project (Project), and in consideration of being granted permission to be involved in it and to publicise your contributions through it, you agree to the following CLA terms and conditions, which shall apply to all your past, present and future contributions to the project. + +Agreeing to this CLA explicitly states that you are entitled to provide a contribution (Contribution), that you cannot withdraw permission to use your Contribution at a later date, and that you grant OQC (as defined below), its licensees, successors and assigns permission to use your Contribution in commercial products without further reference or any payment to you. + +## Definitions + +“You” (or “Your”) shall mean the copyright owner or legal entity authorised by the copyright owner that is making this CLA with the Project. For legal entities, the entity making a Contribution and all other entities that control, are controlled by, or are under common control with that entity are considered to be a single Contributor. For the purposes of this definition, “control” means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. + +“Contribution” shall mean the code, documentation or other original works of authorship, including any modifications or additions to an existing work, that is intentionally submitted by You to the Project for inclusion in, or documentation of, any of the products owned or managed by the Project (the “Work”). For the purposes of this definition, “submitted” means any form of electronic, verbal, or written communication or upload sent to the Project or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Project for the purpose of discussing and improving the Work. + +“OQC” means Oxford Quantum Circuits Limited (company 10803852) of Thames Valley Science Park 1 Collegiate Square, South Ave, Reading, United Kingdom, RG2 9LH. + +## License + +You hereby represent that all present, past and future contributions are governed by the BSD-3 copyright statement unless stipulated otherwise. This entails that to the extent possible under law, you transfer all copyright and related or neighboring rights of the code or documents you contribute to the Project itself or its maintainers. Furthermore, you also represent that you have the authority to perform the above waiver with respect to the entirety of your Contributions. + +You hereby grant to OQC and to recipients of software distributed by the Project a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute Your Contributions and such derivative works. Such license shall be freely assignable and sub-licensable. + +OQC may add to or change these Terms and Conditions without notice including updating, amending, or varying this agreement or introducing a new licensing arrangement. As such You agree that OQC is entitled to amend these Terms and Conditions at any time without Your prior permission. + +## Moral Rights + +To the fullest extent permitted under applicable law, you hereby waive, and agree not to assert, any or all of your “moral rights” in or relating to Your Contributions for the benefit of the project. + +## Third Party Content + +If Your Contribution includes or is based on any source code, object code, bug fixes, configuration changes, tools, specifications, documentation, data, materials, feedback, information or other works of authorship that were not authored by you (“Third Party Content”) or if You are aware of any third party intellectual property or proprietary rights associated with your Contribution (“Third Party Rights”), then you agree to include with the submission of Your Contribution full details respecting such Third Party Content and Third Party Rights, including, without limitation, identification of which aspects of your Contribution contain Third Party Content or are associated with Third Party Rights, the owner/author of the Third Party Content and Third Party Rights, where You obtained the Third Party Content, and any applicable third party license terms or restrictions respecting the Third Party Content and Third Party Rights. If use of any Third Party Consent requires a license then you must obtain one. For greater certainty, the foregoing obligations respecting the identification of Third Party Content and Third Party Rights do not apply to any portion of a Project that is incorporated into Your Contribution to that same Project. + +## Representations + +You represent that, other than the Third Party Content and Third Party Rights identified by you in accordance with this Agreement, you are the sole author of your Contributions and are legally entitled to grant the foregoing licenses and waivers in respect of your Contributions. If your Contributions were created in the course of your employment with your past or present employer(s), you represent that such employer(s) has authorised you to make your Contributions on behalf of such employer(s) or such employer (s) has waived all of their right, title or interest in or to your Contributions. + +## Disclaimer + +To the fullest extent permitted under applicable law, your Contributions are provided on an "as is" basis, without any warranties or conditions, express or implied, including, without limitation, any implied warranties or conditions of non-infringement, merchantability or fitness for a particular purpose. You are not required to provide support for your Contributions, except to the extent you desire to provide support. + +## No Obligation +You acknowledge that OQC is under no obligation to use or incorporate your contributions into the Project. The decision to use or incorporate your contributions into the Project will be made at the sole discretion of OQC or its authorised delegates. + +## Severability +If any term of this CLA is held invalid or unenforceable for any reason, the remainder of the term and this CLA will continue in full force and effect. + +## Law and jurisdiction +This CLA and any dispute or claim (including non-contractual disputes or claims) arising out of or in connection with it or its subject matter or formation shall be governed by and construed in accordance with the law of England and Wales. OQC and You irrevocably agree that the courts of England and Wales shall have exclusive jurisdiction to settle any dispute or claim (including non-contractual disputes or claims) arising out of or in connection with this CLA or its subject matter or formation provided that OQC may apply for an injunction or other interim relief and enforce a judgment awarded it by the English courts in any court of competent jurisdiction. + diff --git a/poetry.lock b/poetry.lock new file mode 100644 index 0000000..7b6338b --- /dev/null +++ b/poetry.lock @@ -0,0 +1,208 @@ +# This file is automatically @generated by Poetry 1.6.1 and should not be changed by hand. + +[[package]] +name = "colorama" +version = "0.4.6" +description = "Cross-platform colored terminal text." +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +files = [ + {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, + {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, +] + +[[package]] +name = "coverage" +version = "6.5.0" +description = "Code coverage measurement for Python" +optional = false +python-versions = ">=3.7" +files = [ + {file = "coverage-6.5.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ef8674b0ee8cc11e2d574e3e2998aea5df5ab242e012286824ea3c6970580e53"}, + {file = "coverage-6.5.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:784f53ebc9f3fd0e2a3f6a78b2be1bd1f5575d7863e10c6e12504f240fd06660"}, + {file = "coverage-6.5.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b4a5be1748d538a710f87542f22c2cad22f80545a847ad91ce45e77417293eb4"}, + {file = "coverage-6.5.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:83516205e254a0cb77d2d7bb3632ee019d93d9f4005de31dca0a8c3667d5bc04"}, + {file = "coverage-6.5.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:af4fffaffc4067232253715065e30c5a7ec6faac36f8fc8d6f64263b15f74db0"}, + {file = "coverage-6.5.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:97117225cdd992a9c2a5515db1f66b59db634f59d0679ca1fa3fe8da32749cae"}, + {file = "coverage-6.5.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:a1170fa54185845505fbfa672f1c1ab175446c887cce8212c44149581cf2d466"}, + {file = "coverage-6.5.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:11b990d520ea75e7ee8dcab5bc908072aaada194a794db9f6d7d5cfd19661e5a"}, + {file = "coverage-6.5.0-cp310-cp310-win32.whl", hash = "sha256:5dbec3b9095749390c09ab7c89d314727f18800060d8d24e87f01fb9cfb40b32"}, + {file = "coverage-6.5.0-cp310-cp310-win_amd64.whl", hash = "sha256:59f53f1dc5b656cafb1badd0feb428c1e7bc19b867479ff72f7a9dd9b479f10e"}, + {file = "coverage-6.5.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4a5375e28c5191ac38cca59b38edd33ef4cc914732c916f2929029b4bfb50795"}, + {file = "coverage-6.5.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c4ed2820d919351f4167e52425e096af41bfabacb1857186c1ea32ff9983ed75"}, + {file = "coverage-6.5.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:33a7da4376d5977fbf0a8ed91c4dffaaa8dbf0ddbf4c8eea500a2486d8bc4d7b"}, + {file = "coverage-6.5.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a8fb6cf131ac4070c9c5a3e21de0f7dc5a0fbe8bc77c9456ced896c12fcdad91"}, + {file = "coverage-6.5.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:a6b7d95969b8845250586f269e81e5dfdd8ff828ddeb8567a4a2eaa7313460c4"}, + {file = "coverage-6.5.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:1ef221513e6f68b69ee9e159506d583d31aa3567e0ae84eaad9d6ec1107dddaa"}, + {file = "coverage-6.5.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:cca4435eebea7962a52bdb216dec27215d0df64cf27fc1dd538415f5d2b9da6b"}, + {file = "coverage-6.5.0-cp311-cp311-win32.whl", hash = "sha256:98e8a10b7a314f454d9eff4216a9a94d143a7ee65018dd12442e898ee2310578"}, + {file = "coverage-6.5.0-cp311-cp311-win_amd64.whl", hash = "sha256:bc8ef5e043a2af066fa8cbfc6e708d58017024dc4345a1f9757b329a249f041b"}, + {file = "coverage-6.5.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:4433b90fae13f86fafff0b326453dd42fc9a639a0d9e4eec4d366436d1a41b6d"}, + {file = "coverage-6.5.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f4f05d88d9a80ad3cac6244d36dd89a3c00abc16371769f1340101d3cb899fc3"}, + {file = "coverage-6.5.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:94e2565443291bd778421856bc975d351738963071e9b8839ca1fc08b42d4bef"}, + {file = "coverage-6.5.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:027018943386e7b942fa832372ebc120155fd970837489896099f5cfa2890f79"}, + {file = "coverage-6.5.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:255758a1e3b61db372ec2736c8e2a1fdfaf563977eedbdf131de003ca5779b7d"}, + {file = "coverage-6.5.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:851cf4ff24062c6aec510a454b2584f6e998cada52d4cb58c5e233d07172e50c"}, + {file = "coverage-6.5.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:12adf310e4aafddc58afdb04d686795f33f4d7a6fa67a7a9d4ce7d6ae24d949f"}, + {file = "coverage-6.5.0-cp37-cp37m-win32.whl", hash = "sha256:b5604380f3415ba69de87a289a2b56687faa4fe04dbee0754bfcae433489316b"}, + {file = "coverage-6.5.0-cp37-cp37m-win_amd64.whl", hash = "sha256:4a8dbc1f0fbb2ae3de73eb0bdbb914180c7abfbf258e90b311dcd4f585d44bd2"}, + {file = "coverage-6.5.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:d900bb429fdfd7f511f868cedd03a6bbb142f3f9118c09b99ef8dc9bf9643c3c"}, + {file = "coverage-6.5.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:2198ea6fc548de52adc826f62cb18554caedfb1d26548c1b7c88d8f7faa8f6ba"}, + {file = "coverage-6.5.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6c4459b3de97b75e3bd6b7d4b7f0db13f17f504f3d13e2a7c623786289dd670e"}, + {file = "coverage-6.5.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:20c8ac5386253717e5ccc827caad43ed66fea0efe255727b1053a8154d952398"}, + {file = "coverage-6.5.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6b07130585d54fe8dff3d97b93b0e20290de974dc8177c320aeaf23459219c0b"}, + {file = "coverage-6.5.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:dbdb91cd8c048c2b09eb17713b0c12a54fbd587d79adcebad543bc0cd9a3410b"}, + {file = "coverage-6.5.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:de3001a203182842a4630e7b8d1a2c7c07ec1b45d3084a83d5d227a3806f530f"}, + {file = "coverage-6.5.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:e07f4a4a9b41583d6eabec04f8b68076ab3cd44c20bd29332c6572dda36f372e"}, + {file = "coverage-6.5.0-cp38-cp38-win32.whl", hash = "sha256:6d4817234349a80dbf03640cec6109cd90cba068330703fa65ddf56b60223a6d"}, + {file = "coverage-6.5.0-cp38-cp38-win_amd64.whl", hash = "sha256:7ccf362abd726b0410bf8911c31fbf97f09f8f1061f8c1cf03dfc4b6372848f6"}, + {file = "coverage-6.5.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:633713d70ad6bfc49b34ead4060531658dc6dfc9b3eb7d8a716d5873377ab745"}, + {file = "coverage-6.5.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:95203854f974e07af96358c0b261f1048d8e1083f2de9b1c565e1be4a3a48cfc"}, + {file = "coverage-6.5.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b9023e237f4c02ff739581ef35969c3739445fb059b060ca51771e69101efffe"}, + {file = "coverage-6.5.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:265de0fa6778d07de30bcf4d9dc471c3dc4314a23a3c6603d356a3c9abc2dfcf"}, + {file = "coverage-6.5.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f830ed581b45b82451a40faabb89c84e1a998124ee4212d440e9c6cf70083e5"}, + {file = "coverage-6.5.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:7b6be138d61e458e18d8e6ddcddd36dd96215edfe5f1168de0b1b32635839b62"}, + {file = "coverage-6.5.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:42eafe6778551cf006a7c43153af1211c3aaab658d4d66fa5fcc021613d02518"}, + {file = "coverage-6.5.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:723e8130d4ecc8f56e9a611e73b31219595baa3bb252d539206f7bbbab6ffc1f"}, + {file = "coverage-6.5.0-cp39-cp39-win32.whl", hash = "sha256:d9ecf0829c6a62b9b573c7bb6d4dcd6ba8b6f80be9ba4fc7ed50bf4ac9aecd72"}, + {file = "coverage-6.5.0-cp39-cp39-win_amd64.whl", hash = "sha256:fc2af30ed0d5ae0b1abdb4ebdce598eafd5b35397d4d75deb341a614d333d987"}, + {file = "coverage-6.5.0-pp36.pp37.pp38-none-any.whl", hash = "sha256:1431986dac3923c5945271f169f59c45b8802a114c8f548d611f2015133df77a"}, + {file = "coverage-6.5.0.tar.gz", hash = "sha256:f642e90754ee3e06b0e7e51bce3379590e76b7f76b708e1a71ff043f87025c84"}, +] + +[package.extras] +toml = ["tomli"] + +[[package]] +name = "exceptiongroup" +version = "1.2.1" +description = "Backport of PEP 654 (exception groups)" +optional = false +python-versions = ">=3.7" +files = [ + {file = "exceptiongroup-1.2.1-py3-none-any.whl", hash = "sha256:5258b9ed329c5bbdd31a309f53cbfb0b155341807f6ff7606a1e801a891b29ad"}, + {file = "exceptiongroup-1.2.1.tar.gz", hash = "sha256:a4785e48b045528f5bfe627b6ad554ff32def154f42372786903b7abcfe1aa16"}, +] + +[package.extras] +test = ["pytest (>=6)"] + +[[package]] +name = "iniconfig" +version = "2.0.0" +description = "brain-dead simple config-ini parsing" +optional = false +python-versions = ">=3.7" +files = [ + {file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"}, + {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"}, +] + +[[package]] +name = "packaging" +version = "24.1" +description = "Core utilities for Python packages" +optional = false +python-versions = ">=3.8" +files = [ + {file = "packaging-24.1-py3-none-any.whl", hash = "sha256:5b8f2217dbdbd2f7f384c41c628544e6d52f2d0f53c6d0c3ea61aa5d1d7ff124"}, + {file = "packaging-24.1.tar.gz", hash = "sha256:026ed72c8ed3fcce5bf8950572258698927fd1dbda10a5e981cdf0ac37f4f002"}, +] + +[[package]] +name = "pip-licenses" +version = "3.5.5" +description = "Dump the software license list of Python packages installed with pip." +optional = false +python-versions = "~=3.7" +files = [ + {file = "pip-licenses-3.5.5.tar.gz", hash = "sha256:748cfd7aca6e05032f9fa85691301295f4d943e87955be6914ca49abe3c075a4"}, + {file = "pip_licenses-3.5.5-py3-none-any.whl", hash = "sha256:6129c116bab2b202d90d6e3a96092df4ad84c0c4d57bb70192fc03f8bf06d181"}, +] + +[package.dependencies] +PTable = "*" + +[package.extras] +test = ["docutils", "pytest-cov", "pytest-pycodestyle", "pytest-runner"] + +[[package]] +name = "pluggy" +version = "1.5.0" +description = "plugin and hook calling mechanisms for python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669"}, + {file = "pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1"}, +] + +[package.extras] +dev = ["pre-commit", "tox"] +testing = ["pytest", "pytest-benchmark"] + +[[package]] +name = "ptable" +version = "0.9.2" +description = "A simple Python library for easily displaying tabular data in a visually appealing ASCII table format" +optional = false +python-versions = "*" +files = [ + {file = "PTable-0.9.2.tar.gz", hash = "sha256:aa7fc151cb40f2dabcd2275ba6f7fd0ff8577a86be3365cd3fb297cbe09cc292"}, +] + +[[package]] +name = "pytest" +version = "8.2.2" +description = "pytest: simple powerful testing with Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pytest-8.2.2-py3-none-any.whl", hash = "sha256:c434598117762e2bd304e526244f67bf66bbd7b5d6cf22138be51ff661980343"}, + {file = "pytest-8.2.2.tar.gz", hash = "sha256:de4bb8104e201939ccdc688b27a89a7be2079b22e2bd2b07f806b6ba71117977"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "sys_platform == \"win32\""} +exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""} +iniconfig = "*" +packaging = "*" +pluggy = ">=1.5,<2.0" +tomli = {version = ">=1", markers = "python_version < \"3.11\""} + +[package.extras] +dev = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] + +[[package]] +name = "pytest-cov" +version = "2.10.1" +description = "Pytest plugin for measuring coverage." +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "pytest-cov-2.10.1.tar.gz", hash = "sha256:47bd0ce14056fdd79f93e1713f88fad7bdcc583dcd7783da86ef2f085a0bb88e"}, + {file = "pytest_cov-2.10.1-py2.py3-none-any.whl", hash = "sha256:45ec2d5182f89a81fc3eb29e3d1ed3113b9e9a873bcddb2a71faaab066110191"}, +] + +[package.dependencies] +coverage = ">=4.4" +pytest = ">=4.6" + +[package.extras] +testing = ["fields", "hunter", "process-tests (==2.0.2)", "pytest-xdist", "six", "virtualenv"] + +[[package]] +name = "tomli" +version = "2.0.1" +description = "A lil' TOML parser" +optional = false +python-versions = ">=3.7" +files = [ + {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"}, + {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"}, +] + +[metadata] +lock-version = "2.0" +python-versions = ">=3.8.1,<3.11" +content-hash = "7beabc0a6d0ff6215e0869468a7a33fb546556937f96821cdddf2b8005b2debf" diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..1b37057 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,24 @@ +[tool.poetry] +name = "qat-rpc" +version = "0.1.0" +description = "RPC tooling for OQC QAT." +authors = ["Kajsa Eriksson Rosenqvist "] +readme = "README.md" +license = "BSD-3-Clause" + +[tool.poetry.dependencies] +python = ">=3.8.1,<3.11" + +[tool.poetry.group.dev.dependencies] +coverage = "^6.3.2" +pytest-cov = "~=2.10.1" + +[tool.poetry.group.licenses] +optional = true + +[tool.poetry.group.licenses.dependencies] +pip-licenses = "^3.5.3" + +[build-system] +requires = ["poetry-core"] +build-backend = "poetry.core.masonry.api"