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

🐍 Added Python bindings #371

Merged
merged 512 commits into from
Apr 22, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
512 commits
Select commit Hold shift + click to select a range
47f6457
:green_heart: Adjusted start directory path
marcelwa Apr 21, 2023
b920256
:green_heart: Adjusted the start directory path once more
marcelwa Apr 21, 2023
69b63ad
:rotating_light: Removed the build-verbosity flag for cibuildwheels, …
marcelwa Apr 21, 2023
cc0e268
:green_heart: Use `python` instead of `python3` to rely on specified …
marcelwa Apr 21, 2023
ca30bae
:construction_worker: Added two more Python versions (3.7 and 3.8) to…
marcelwa Apr 21, 2023
6f97293
:construction_worker: Changed job name
marcelwa Apr 21, 2023
5a073d7
🐛 Fix test skips based on Z3 (#195)
simon1hofmann Apr 24, 2023
ebe0adc
:memo: Added more documentation on pyfiction
marcelwa Apr 24, 2023
502515c
:twisted_rightwards_arrows: Merge
marcelwa Apr 24, 2023
34eb78f
:see_no_evil: Added `dist/` to the ignored paths
marcelwa Apr 24, 2023
6030e01
:art: No need for second `mockturtle` link here
marcelwa Apr 25, 2023
8badaaa
:art: Added another __init__.py file content
marcelwa Apr 25, 2023
079746c
:construction_worker: Trigger dispatch workflow on push such that it …
marcelwa Apr 25, 2023
300b201
:sparkles: Added shifted_cartesian_layout to pyfiction
marcelwa Apr 25, 2023
e99610d
:construction_worker: Set the Z3 environment variable before wheels a…
marcelwa Apr 25, 2023
2aa1d61
:construction_worker: Set the Z3 environment variable before wheels a…
marcelwa Apr 25, 2023
7777c6c
✨ Added `pyfiction` documentation to read the docs (#190)
simon1hofmann Apr 25, 2023
a31fe29
Merge remote-tracking branch 'origin/pyml' into pyml
marcelwa Apr 25, 2023
7be416d
:memo: Adjusted the documentation for shifted_cartesian_layout
marcelwa Apr 25, 2023
70aecb5
:bug: Fixed the absence of several docstrings by re-running pybind11_…
marcelwa Apr 25, 2023
c748542
:art: Fixed an inconsistency and removed MUGEN from docstring generation
marcelwa Apr 25, 2023
947575c
:memo: Adjusted the README on pyfiction
marcelwa Apr 25, 2023
70fbcff
:fire: Removed all remnants of Mugen from pyfiction since it cannot w…
marcelwa Apr 25, 2023
7f24ca6
:fire: Removed old LGTM config file
marcelwa Apr 25, 2023
bf60430
:fire: Removed (probably unneeded) find Python directive
marcelwa Apr 25, 2023
602dc56
:construction_worker: Try removing the before all clause again
marcelwa Apr 25, 2023
0bdcc3f
:memo: Fixed hexagonal_layout documentation
marcelwa Apr 25, 2023
bea1f1b
:memo: Added pyfiction RST documentation on shifted_cartesian_layout
marcelwa Apr 25, 2023
a05d359
:memo: Added missing pyfiction RST documentation
marcelwa Apr 25, 2023
6d2ad8a
:sparkles: Added read_sqd_layout to pyfiction
marcelwa Apr 25, 2023
cf407bf
:building_construction: Enable position independent code for tinyxml2…
marcelwa Apr 25, 2023
568977d
:memo: Adjusted documentation string for read_sqd_layout
marcelwa Apr 25, 2023
d8ae6cf
Add gate type checks to pyfiction (#204)
simon1hofmann May 11, 2023
cba707f
:sparkles: Added missing coordinate types to pyfiction
marcelwa May 22, 2023
3e806e4
:memo: Updated docstrings
marcelwa May 22, 2023
d6675b4
:sparkles: Added missing coordinate functions and documentation
marcelwa May 22, 2023
3887f9c
:art: Improved structure of `charge_distribution_surface`
marcelwa May 22, 2023
27765db
:art: Added `charge_distribution_surface` to pyfiction
marcelwa May 22, 2023
82f20d3
:memo: Small documentation fix
marcelwa May 22, 2023
28f71e8
:memo: Small documentation fix
marcelwa May 22, 2023
6eaaef5
:bug: Fixed documentation build
marcelwa May 22, 2023
7fff213
:bug: Fixed documentation build
marcelwa May 22, 2023
d43d68f
:pencil2: Fixed a typo
marcelwa May 22, 2023
75f1ed3
Merge branch 'main' into pyml
marcelwa May 22, 2023
2f4f98c
:construction_worker: Use mold for Python bindings builds as well
marcelwa May 22, 2023
a88d828
:bug: Fixed const parameter
marcelwa May 22, 2023
84257a5
:bug: Fixed merge artifact
marcelwa May 22, 2023
b639ba8
:bug: Fixed merge artifact
marcelwa May 22, 2023
91692d6
:bug: Fixed documentation build
marcelwa May 22, 2023
0fc4be7
:memo: Updated docstrings
marcelwa May 22, 2023
b5a3382
:sparkles: Added `sidb_simulation_result` to pyfiction
marcelwa May 22, 2023
e57a72e
Merge branch 'main' into pyml
marcelwa Jun 6, 2023
80b43e2
✨ Add bounding box to pyfiction (#235)
simon1hofmann Jun 12, 2023
aa436b0
:sparkles: Added SiDB simulation to pyfiction
marcelwa Jun 13, 2023
7fede48
Merge remote-tracking branch 'origin/pyml' into pyml
marcelwa Jun 13, 2023
d880fe2
:rotating_light: Attempt to fix the compiler issue in RTD
marcelwa Jun 13, 2023
992f61a
Merge branch 'main' into pyml
marcelwa Jun 14, 2023
01f94d7
:memo: Updated mkdoc_docstrings
marcelwa Jun 14, 2023
9b39c9d
:sparkles: Added time_to_solution and occupation_probability_of_excit…
marcelwa Jun 14, 2023
19d0a55
:fire: Removed unnecessary namespace aliases
marcelwa Jun 14, 2023
50eaec6
:memo: Added RTD documentation for all SiDB simulation functions
marcelwa Jun 14, 2023
8e1d0b6
Pyml tests for simulators (#237)
Drewniok Jun 15, 2023
3d24b7a
:white_check_mark: Fixed several of the failing pyfiction SiDB simula…
marcelwa Jun 28, 2023
75e5990
:white_check_mark: Fixed all SiDB simulator test cases in pyfiction
marcelwa Jun 28, 2023
d2831fa
:art: Added ``assertLessEqual`` to fix Python test under macOS (#246)
Drewniok Jul 9, 2023
443c616
:sparkles: Added additionally cell-level layout features to pyfiction…
marcelwa Jul 10, 2023
7f37915
Merge remote-tracking branch 'origin/pyml' into pyml
marcelwa Jul 10, 2023
12ecb64
Merge branch 'main' into pyml
marcelwa Sep 18, 2023
9a72371
:alien: Fixed merge conflicts occurred due to architectural changes m…
marcelwa Sep 19, 2023
c886d71
:sparkles: Added 2DDWave distance, post-layout optimization and hexag…
marcelwa Sep 19, 2023
8cc2f40
expose is_dead function (#290)
simon1hofmann Sep 21, 2023
d9cd6ef
🐛 Fix docstring generator (#292)
simon1hofmann Sep 22, 2023
14fdb3b
✨ Add post layout optimization to pyfiction and update docstrings (#293)
simon1hofmann Sep 22, 2023
00dd5e7
✨ Add hexagonalization algorithm to pyfiction (#295)
simon1hofmann Sep 22, 2023
0dfaf45
Merge remote-tracking branch 'origin/pyml' into pyml
marcelwa Oct 6, 2023
5f625d9
Merge branch 'main' into pyml
marcelwa Oct 6, 2023
3e701b1
:twisted_rightwards_arrows: Resolve merge conflicts with `main`
marcelwa Oct 9, 2023
3c8fb5d
:bug: Added the position independent code requirement for tinyxml
marcelwa Oct 9, 2023
4caa6c7
:memo: Added latest docstrings
marcelwa Oct 9, 2023
2d43a91
Merge branch 'main' into pyml
simon1hofmann Oct 9, 2023
4687bcc
:green_heart: Attempt to fix sdist
marcelwa Oct 9, 2023
03ca9fd
:zap: Enable target stripping, IPO, PCH, and unity builds for pyfiction
marcelwa Oct 9, 2023
a8e2353
:construction_worker: Use ccache in pypi CI
marcelwa Oct 9, 2023
e47ada1
:bug: Fix target name
marcelwa Oct 9, 2023
eeb81ea
:bug: Attempt to fix sdist
marcelwa Oct 9, 2023
4a71fc3
:construction_worker: Make the pyfiction CI fail fast
marcelwa Oct 9, 2023
4492fdb
:bug: Remove target stripping from pyfiction
marcelwa Oct 9, 2023
82a9c22
:bug: Attempt to fix sdist
marcelwa Oct 9, 2023
bba3a92
:green_heart: Attempt to fix RTD
marcelwa Oct 9, 2023
727497c
Merge branch 'main' into pyml
simon1hofmann Oct 10, 2023
e9d08e0
✨ Expose gate-level layout reader and writer (#308)
simon1hofmann Oct 10, 2023
9537bb0
remove unnecessary imports
Oct 10, 2023
fe7303b
:bug: Fix Pyfiction CI
simon1hofmann Oct 11, 2023
4a1a329
✨ Add naming utils to logic network (#311)
simon1hofmann Oct 11, 2023
c036921
:truck: Renamed the `io` folder to `inout` to avoid conflicts with Py…
marcelwa Nov 15, 2023
fcee165
:memo: Updated the documentation with the new GitHub link
marcelwa Nov 15, 2023
256abde
:bug: Fixed includes in accordance to new header location
marcelwa Nov 15, 2023
d01162a
:goal_net: Added a definition to help spot errors
marcelwa Nov 15, 2023
48d15e6
:sparkles: Added `sidb_nanometer_distance` to pyfiction
marcelwa Nov 15, 2023
a91f177
:sparkles: Enable the usage of path finding algorithms on unclocked l…
marcelwa Nov 15, 2023
4edd1e8
:sparkles: Added a stub for `design_sidb_gates` in pyfiction to be en…
marcelwa Nov 15, 2023
afe1845
Merge branch 'main' into pyml
marcelwa Nov 15, 2023
c850e53
:twisted_rightwards_arrows: Fix merge conflicts
marcelwa Nov 15, 2023
db1a843
:sparkles: Added new function to CDS in pyfiction
marcelwa Nov 15, 2023
65a8979
:sparkles: Added truth table utils and critical temperature simulatio…
marcelwa Nov 21, 2023
4c15993
:sparkles: Added positive charge detection to pyfiction
marcelwa Nov 21, 2023
3040d2f
:art: Test naming consistency fixes
marcelwa Nov 21, 2023
601b367
:sparkles: Added detect_bdl_pairs to pyfiction
marcelwa Nov 21, 2023
dfb3a8d
:sparkles: Added detect_bdl_pairs to pyfiction
marcelwa Nov 21, 2023
6551596
:sparkles: Added is_operational to pyfiction
marcelwa Nov 21, 2023
1cac00f
:art: Consistency fixes for is_operational
marcelwa Nov 21, 2023
85299eb
:memo: Added missing SiDB simulation documentation for pyfiction
marcelwa Nov 21, 2023
ff16118
:memo: Added missing utils documentation for pyfiction
marcelwa Nov 21, 2023
3a5d387
:sparkles: Added potential support for defect influences to pyfiction…
marcelwa Nov 21, 2023
de9dfd8
Merge branch 'main' into pyml
marcelwa Nov 21, 2023
b0e6e67
:memo: Updated mkdoc docstrings
marcelwa Nov 21, 2023
1ff86a4
:sparkles: Added operational_domain computation to pyfiction
marcelwa Nov 21, 2023
1c41e43
Merge branch 'main' into pyml
marcelwa Nov 21, 2023
426d591
:white_check_mark: Updated Python test
marcelwa Nov 21, 2023
8360980
:sparkles: Added QuickExact to pyfiction
marcelwa Nov 21, 2023
f1c18a2
:memo: Added missing docstring
marcelwa Nov 21, 2023
e218cce
:sparkles: Added code for the random SiDB layout generator to pyficti…
marcelwa Nov 21, 2023
240bafc
:memo: Added missing docstrings
marcelwa Nov 21, 2023
b9e9c5b
:sparkles: Added time_to_solution to pyfiction
marcelwa Nov 21, 2023
53abc2a
:art: ClangFormat
marcelwa Nov 21, 2023
d5c1f71
:sparkles: Added assess_physical_population_stability and convert_pot…
marcelwa Nov 21, 2023
0140e74
:bug: Fix bug in documentation
marcelwa Nov 21, 2023
3f8bbc1
:sparkles: Added proper layout printing to pyfiction
marcelwa Nov 21, 2023
0379977
:sparkles: Finalized I/O package in pyfiction
marcelwa Nov 21, 2023
5284fed
:sparkles: Finalized technology package in pyfiction
marcelwa Nov 21, 2023
26ff731
:bug: Attempt to fix RTD processing
marcelwa Nov 21, 2023
f6c4444
:sparkles: Added all meaningful layout utils to pyfiction
marcelwa Nov 21, 2023
0734f67
:sparkles: Added all meaningful routing utils to pyfiction
marcelwa Nov 21, 2023
18aa63f
:sparkles: Added all meaningful name utils to pyfiction
marcelwa Nov 21, 2023
d497d01
:sparkles: Added some meaningful network utils to pyfiction
marcelwa Nov 21, 2023
471fcf9
:sparkles: Added some meaningful placement utils to pyfiction
marcelwa Nov 21, 2023
634b242
:bug: Attempt to fix ReadTheDocs compilation issue
marcelwa Nov 21, 2023
714d6aa
:memo: Adjusted the PR template with pyfiction in mind
marcelwa Nov 21, 2023
70eb6da
:memo: Adjusted MathJaX comments
marcelwa Nov 21, 2023
4098274
:bug: Fix documentation bugs
marcelwa Nov 22, 2023
2fc5d16
:bug: Fix Sphinx compilation issue
marcelwa Nov 22, 2023
708f2e7
:bug: Fix exception naming
marcelwa Nov 22, 2023
9f73676
:art: Improve structure and documentation of the SiDB defects
marcelwa Nov 22, 2023
0496252
:sparkles: Added network dot drawers to pyfiction
marcelwa Nov 22, 2023
7099573
:art: Renamed package to `mnt.pyfiction`
marcelwa Nov 22, 2023
4afe6e9
:memo: Fix small documentation inconsistency
marcelwa Nov 22, 2023
7b9e55b
:rocket: Deploy to PyPI
marcelwa Nov 22, 2023
7193c95
:twisted_rightwards_arrows: Resolve merge conflicts
marcelwa Nov 27, 2023
749c86a
Merge branch 'main' into pyml
marcelwa Nov 28, 2023
73f917d
:bento: Added static documentation graphics to the sdist
marcelwa Nov 28, 2023
a0b9d90
:memo: Added documentation on mnt.pyfiction
marcelwa Nov 28, 2023
b4cd6f4
:memo: Added documentation on cube coordinates
marcelwa Nov 28, 2023
be72d9e
:bento: Added static documentation graphics to the sdist
marcelwa Nov 28, 2023
85cfe9a
Merge branch 'main' into pyml
Drewniok Dec 1, 2023
e67bbbe
:white_check_mark: add test for cds.
Drewniok Dec 1, 2023
557e99d
:white_check_mark: add test for cds.
Drewniok Dec 1, 2023
8c80396
:white_check_mark: add layout for unit tests.
Drewniok Dec 1, 2023
155e87a
:art: consistent name for the simulation parameters.
Drewniok Dec 1, 2023
43906aa
:white_check_mark: add more tests for pyfiction
Drewniok Dec 1, 2023
2e89ae6
:art: small changes.
Drewniok Dec 1, 2023
27e6513
:art: Enable the usage of py_sidb_layout instead of py_charge_distrib…
marcelwa Dec 1, 2023
e55398b
Merge branch 'main' into pyml
marcelwa Dec 1, 2023
8bfe1de
Merge remote-tracking branch 'upstream/pyml' into pyml
Drewniok Dec 1, 2023
8f25a5f
:art: allow offset coordinates.
Drewniok Dec 1, 2023
7f68edc
:art: allow offset coordinates.
Drewniok Dec 1, 2023
9caf8b7
:art: delete redundant static_assert
Drewniok Dec 1, 2023
bc523d8
:bug: convert siqad to offset coordinates.
Drewniok Dec 1, 2023
24db9e2
:sparkles: add time_to_solution function to pyfiction.
Drewniok Dec 1, 2023
d02a58d
:art: typo.
Drewniok Dec 1, 2023
a6db7cd
:art: add final line.
Drewniok Dec 1, 2023
1fcbf55
:white_check_mark: add unit test for random layout generator
Drewniok Dec 1, 2023
f7e99a8
:art: Renamed pyfiction's `logic_network` to `technology_network` in …
marcelwa Dec 6, 2023
ed25845
Merge remote-tracking branch 'origin/pyml' into pyml
marcelwa Dec 6, 2023
337779f
:art: Change parameter type of pyfiction's time_to_solution to py_sid…
marcelwa Dec 6, 2023
cde245e
:twisted_rightwards_arrows: Merge `main` to `pyml`
marcelwa Jan 19, 2024
689c7bd
:art: ClangFormat changes
Jan 19, 2024
7c9b9c2
:construction_worker: Reverted changes made for testing. Publish to P…
marcelwa Jan 19, 2024
e897921
Merge remote-tracking branch 'origin/pyml' into pyml
marcelwa Jan 19, 2024
566abcf
:wrench: Added a note for developers regarding Python bindings
marcelwa Jan 19, 2024
ab04706
Apply Simon's suggestions
marcelwa Jan 19, 2024
9cc4d13
:twisted_rightwards_arrows: solve merge conflicts.
Drewniok Mar 18, 2024
faf4288
:memo: small fix.
Drewniok Mar 18, 2024
0f9bf47
:art: ClangFormat changes
Mar 18, 2024
2771a62
:art: change test so that no positively charged SiDBs are allowed.
Drewniok Mar 18, 2024
6c6160d
:art: small changes.
Drewniok Mar 18, 2024
93f2a88
:art: use lambda expression due to new template parameter.
Drewniok Mar 21, 2024
ea035c9
Merge branch 'main' into pyml
Drewniok Mar 21, 2024
f0d8f0c
:art: small change.
Drewniok Mar 21, 2024
f98e130
:white_check_mark: update test.
Drewniok Mar 21, 2024
962d789
:arrow_up: upgrade ``pybind11``.
Drewniok Mar 21, 2024
d1f0759
:construction_worker: change pypa version.
Drewniok Mar 22, 2024
d9bf525
Merge branch 'main' into pyml
Drewniok Mar 23, 2024
14d6fac
:white_check_mark: add pybind unit test for sidb gate design.
Drewniok Mar 24, 2024
d4fca66
:white_check_mark: choose correct inverter gate with input tags.
Drewniok Mar 24, 2024
ec6f206
:art: small fixes.
Drewniok Mar 24, 2024
6918b18
:art: add missing headers.
Drewniok Mar 25, 2024
8b6417c
:art: use offset instead of siqad coordinates.
Drewniok Mar 25, 2024
0b00945
:memo: use ``autoclass``.
Drewniok Mar 25, 2024
6ac91f0
:memo: replace ` by `` to use markdown in documentation.
Drewniok Mar 25, 2024
f01e49d
:memo: undo changes.
Drewniok Mar 25, 2024
9b6bfd9
:memo: small fix.
Drewniok Mar 25, 2024
f3abdc1
:memo: small fix.
Drewniok Mar 25, 2024
f59144a
:memo: update design_sidb_gates.rst
Drewniok Mar 25, 2024
69f0afa
:memo: add empty line between the header and the doxygenclass.
Drewniok Mar 25, 2024
859b763
:memo: fix small issue.
Drewniok Mar 25, 2024
6e6c49b
Merge branch 'main' into pyml
Drewniok Apr 4, 2024
35f5a9f
Merge branch 'main' into pyml
Drewniok Apr 7, 2024
ec2d3d1
:twisted_rightwards_arrows: merge ``main`` in. WIP code.
Drewniok Apr 8, 2024
3b5742f
:art: ClangFormat changes
Apr 8, 2024
a061efe
:art: first working version with Si-lattice support.
Drewniok Apr 10, 2024
16a51f2
:art: small fix.
Drewniok Apr 10, 2024
6dd968a
:art: add ``operational_input_patterns`` function.
Drewniok Apr 10, 2024
a157d58
:art: extensive change, expose new functions to pyfiction, add more u…
Drewniok Apr 11, 2024
442ece9
:art: 111-support.
Drewniok Apr 11, 2024
dd46180
:white_check_mark: add more unit tests.
Drewniok Apr 11, 2024
546f296
:art: ClangFormat changes
Apr 11, 2024
6e562a8
:memo: update docu.
Drewniok Apr 11, 2024
066f7d7
:memo: update docu.
Drewniok Apr 11, 2024
52ae58c
:art: update experiments.
Drewniok Apr 11, 2024
d4c25d9
:art: update DOC reference.
Drewniok Apr 11, 2024
035d8f0
:art: update DOC reference.
Drewniok Apr 11, 2024
c038edf
:art: update sidb_lattice.rst
Drewniok Apr 11, 2024
59a455e
:art: rename function and change folder location.
Drewniok Apr 11, 2024
76c2d4d
:art: rename function and update docu.
Drewniok Apr 12, 2024
bd9baf3
:bug: small bug fix in opdomain unit test.
Drewniok Apr 12, 2024
64151d0
:memo: update docu.
Drewniok Apr 12, 2024
4b94b7f
:memo: small fix in docu.
Drewniok Apr 12, 2024
533cc97
:memo: use correct docstring.
Drewniok Apr 12, 2024
907578d
:arrow_up: upgrade submodules.
Drewniok Apr 12, 2024
165cbb0
Merge branch 'main' into pyml
Drewniok Apr 13, 2024
73cbc44
:art: template deduction is working.
Drewniok Apr 15, 2024
8e1d2d2
:art: template deduction is working.
Drewniok Apr 15, 2024
b435223
:art: ClangFormat changes
Apr 15, 2024
da9c4fc
:art: small changes.
Drewniok Apr 15, 2024
bc9d09b
:art: small fix.
Drewniok Apr 15, 2024
a10c17c
:art: update docu.
Drewniok Apr 15, 2024
af03903
:art: small changes.
Drewniok Apr 15, 2024
909e652
:art: update the unordered map.
Drewniok Apr 15, 2024
bf959d7
:bug: Fixed bug in the RST documentation of `one_pass_synthesis`
marcelwa Apr 15, 2024
3aa8806
🎨 Incorporated pre-commit fixes
pre-commit-ci[bot] Apr 15, 2024
5c39f4f
Merge branch 'main' into pyml
Drewniok Apr 16, 2024
a842897
:twisted_rightwards_arrows: merge with ``main``.
Drewniok Apr 16, 2024
756a57b
:bug: use correct limit.
Drewniok Apr 16, 2024
c180737
:art: use ``FICTION_EXECUTION_POLICY_SEQ`` for random sampling.
Drewniok Apr 18, 2024
9cfac91
Merge branch 'main' into pyml
Drewniok Apr 18, 2024
86a7fe6
:white_check_mark: fix unit test after merge.
Drewniok Apr 18, 2024
b95727b
:art: revert execution policy setting and update unit test.
Drewniok Apr 18, 2024
4b3cc2a
:art: define hash function and use set to have unique random sample p…
Drewniok Apr 18, 2024
5c3ec55
:fire: remove hash function for step point.
Drewniok Apr 19, 2024
6b84dc6
Merge branch 'main' into pyml
Drewniok Apr 20, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .clang-format
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ IncludeCategories:
Priority: 2
- Regex: '<fiction\/[a-zA-Z0-9_]+.+>$'
Priority: 3
- Regex: '<(alice|lorina|mockturtle|kitty|bill|nlohmann|fmt|z3|phmap|btree|tinyxml2|units)(\/[a-zA-Z0-9_])*.+>$'
- Regex: '<(alice|lorina|mockturtle|kitty|bill|nlohmann|fmt|z3|phmap|btree|tinyxml2|pybind11)(\/[a-zA-Z0-9_])*.+>$'
Priority: 4
- Regex: '<z3[a-zA-Z0-9_\+]+.+>$'
Priority: 5
Expand Down
1 change: 1 addition & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,5 +13,6 @@ This checklist serves as a reminder of a couple of things that ensure your pull

- [ ] The pull request only contains commits that are related to it.
- [ ] I have added appropriate tests and documentation.
- [ ] I have created/adjusted the Python bindings for any new or updated functionality.
- [ ] I have made sure that all CI jobs on GitHub pass.
- [ ] The pull request introduces no new warnings and follows the project's style guidelines.
2 changes: 1 addition & 1 deletion .github/workflows/clang-tidy-review.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ jobs:
-DMOCKTURTLE_EXAMPLES=OFF
build_dir: build
config_file: '.clang-tidy'
exclude: 'libs/*, docs/*, benchmarks/*, bib/*'
exclude: 'libs/*, docs/*, benchmarks/*, bib/*, */pyfiction/pybind11_mkdoc_docstrings.hpp, */pyfiction/documentation.hpp'
split_workflow: true

- name: Make sure that the review file exists
Expand Down
11 changes: 6 additions & 5 deletions .github/workflows/codeql-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -63,11 +63,6 @@ jobs:
- name: Install libraries and the respective compiler
run: sudo apt-get update && sudo apt-get install -yq libtbb-dev ${{matrix.compiler}}

- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.9.x'

- name: Checkout repository
uses: actions/checkout@v4
with:
Expand All @@ -82,6 +77,12 @@ jobs:
save: true
max-size: 10G

- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.9.x'
cache: 'pip'

- name: Setup mold
uses: rui314/setup-mold@v1

Expand Down
11 changes: 6 additions & 5 deletions .github/workflows/coverage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,11 +47,6 @@ jobs:
- name: Install the Compiler
run: sudo apt-get update && sudo apt-get install -yq ${{matrix.compiler}}

- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.9.x'

- name: Clone Repository
uses: actions/checkout@v4
with:
Expand All @@ -65,6 +60,12 @@ jobs:
save: true
max-size: 10G

- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.9.x'
cache: 'pip'

- name: Setup mold
uses: rui314/setup-mold@v1

Expand Down
43 changes: 43 additions & 0 deletions .github/workflows/pyfiction-docstring-generator.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
name: pyfiction Docstring Generator

on:
push:
workflow_dispatch:

jobs:
get_docstrings:
name: Auto-generate docstrings for pyfiction from C++ code
runs-on: ubuntu-latest
steps:
- name: Clone Repository
uses: actions/checkout@v3
with:
submodules: recursive

- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: "3.11.x"
cache: 'pip'

- name: Install pybind11_mkdoc and clang
working-directory: ${{ github.workspace }}
run: pip install pybind11_mkdoc clang==15.0.7

- name: Create docstrings file
working-directory: ${{ github.workspace }}
run: touch ${{ github.workspace }}/pybind11_mkdoc_docstrings.hpp

- name: Run pybind11_mkdoc
working-directory: ${{ github.workspace }}
run: >
python3
-m pybind11_mkdoc
-o ${{ github.workspace }}/pybind11_mkdoc_docstrings.hpp
-D FICTION_Z3_SOLVER
`find ${{ github.workspace }}/include/fiction -name "*.hpp" -print`

- name: Upload docstrings as an artifact
uses: actions/upload-artifact@v3
with:
path: ${{ github.workspace }}/pybind11_mkdoc_docstrings.hpp
138 changes: 138 additions & 0 deletions .github/workflows/pyfiction-pypi-deployment.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,138 @@
# this file is heavily based on https://github.com/cda-tum/qmap/blob/main/.github/workflows/deploy.yml

name: pyfiction PyPI Deployment

on:
release:
types: [ published ]
pull_request:
merge_group:
push:
branches:
- main
workflow_dispatch:

concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true

env:
Z3_VERSION: 4.10.0
ENABLE_Z3: 'ON'

jobs:
build_wheels:
name: Wheels for ${{ matrix.config.os }} (${{ matrix.config.arch }})
runs-on: ${{ matrix.config.os }}
strategy:
fail-fast: false
matrix:
config:
- { os: ubuntu-latest, arch: x64 }
- { os: macos-latest, arch: x64 }
- { os: macos-latest, arch: arm64 }
- { os: windows-latest, arch: x64 }
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
fetch-depth: 0

- name: Setup ccache
uses: hendrikmuhs/[email protected]
with:
key: '${{matrix.config.os}}-pyfiction'
variant: ccache
save: true
max-size: 10G

# on Linux, the action does not work because it can't install to the manylinux container
- if: runner.os != 'Linux'
name: Install Z3
uses: cda-tum/setup-z3@v1
with:
version: ${{ env.Z3_VERSION }}
architecture: ${{ matrix.config.arch }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- if: runner.os == 'Linux'
name: Setup mold
uses: rui314/setup-mold@v1

- if: ${{ matrix.config.arch == 'arm64' }}
name: Set Architecture to arm64 if necessary
run: echo "CIBW_ARCHS_MACOS=arm64" >> $GITHUB_ENV

- name: Build wheel
uses: pypa/[email protected]
env:
CIBW_BEFORE_ALL_LINUX: /opt/python/cp39-cp39/bin/pip install z3-solver==${{ env.Z3_VERSION }}
CIBW_TEST_EXTRAS: test
CIBW_TEST_COMMAND: 'python -m unittest discover --start-directory {project} --verbose'

- name: Upload wheel as an artifact
uses: actions/upload-artifact@v3
with:
path: ./wheelhouse/*.whl

build_sdist:
name: Build Source Distribution
runs-on: ubuntu-latest
steps:
- name: Clone respository
uses: actions/checkout@v3
with:
submodules: recursive
fetch-depth: 0

- name: Setup ccache
uses: hendrikmuhs/[email protected]
with:
key: 'ubuntu-latest-pyfiction'
variant: ccache
save: true
max-size: 10G

- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: '3.10'
cache: 'pip'

- name: Setup Z3 Solver
uses: cda-tum/setup-z3@v1
with:
version: ${{ env.Z3_VERSION }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: Build sdist
run: pipx run build --sdist

- name: Test sdist
run: z3=${{env.ENABLE_Z3}} pip install dist/*.tar.gz --verbose

- name: Upload sdist as an artifact
uses: actions/upload-artifact@v3
with:
path: dist/*.tar.gz

publish_to_pypi:
needs: [ build_wheels, build_sdist ]
runs-on: ubuntu-latest
name: Publish to PyPI
if: github.event_name == 'release' && github.event.action == 'published'
steps:
- name: Download the previously stored artifacts
uses: actions/download-artifact@v3
with:
name: artifact
path: dist

- name: Deploy to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
with:
password: ${{ secrets.PYPI_DEPLOY_TOKEN }}
skip-existing: true
verbose: true
85 changes: 85 additions & 0 deletions .github/workflows/python-bindings.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
name: pyfiction CI

on:
push:
paths:
- 'bindings/pyfiction/**'
- '**/*.py'
- '**/*.hpp'
- '**/*.cpp'
- '**/*.cmake'
- '**/CMakeLists.txt'
- 'libs/**'
- '.github/workflows/python-bindings.yml'

concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true

defaults:
run:
shell: bash

env:
Z3_VERSION: 4.10.0
ENABLE_Z3: 'ON'

jobs:
build_and_test:
strategy:
matrix:
os: [ ubuntu-latest, macos-latest, windows-latest ]
python_version: [ '3.7.x', '3.8.x', '3.9.x', '3.10.x', '3.11.x' ]
include:
- os: ubuntu-latest
z3_platform: linux
- os: macos-latest
z3_platform: macOS
- os: windows-latest
z3_platform: windows
fail-fast: false # allow other jobs to finish even if one fails

name: pyfiction on ${{matrix.os}} with Python ${{matrix.python_version}}
runs-on: ${{matrix.os}}

steps:
- name: Clone Repository
uses: actions/checkout@v3
with:
submodules: recursive

- name: Setup ccache
uses: hendrikmuhs/[email protected]
with:
key: '${{matrix.os}}-pyfiction'
variant: ccache
save: true
max-size: 10G

- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: ${{matrix.python_version}}
cache: 'pip'

- if: runner.os == 'Linux'
name: Setup mold
uses: rui314/setup-mold@v1

- name: Setup Z3 Solver
id: z3
uses: cda-tum/setup-z3@v1
with:
version: ${{env.Z3_VERSION}}
platform: ${{matrix.z3_platform}}
architecture: x64
env:
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}

- name: Build pyfiction
working-directory: ${{github.workspace}}
run: z3=${{env.ENABLE_Z3}} pip install '.[test]'

- name: Test
working-directory: ${{github.workspace}}
run: python -m unittest discover --verbose
15 changes: 8 additions & 7 deletions .github/workflows/ubuntu.yml
Original file line number Diff line number Diff line change
Expand Up @@ -76,11 +76,6 @@ jobs:
- name: Install libraries and the respective compiler
run: sudo apt-get update && sudo apt-get install -yq libtbb-dev ${{matrix.compiler}}

- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.9.x'

- name: Clone Repository
uses: actions/checkout@v4
with:
Expand All @@ -94,14 +89,20 @@ jobs:
save: true
max-size: 10G

- name: Setup mold
uses: rui314/setup-mold@v1
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.9.x'
cache: 'pip'

- name: Install pip packages
uses: BSFishy/pip-action@v1
with:
requirements: ${{github.workspace}}/libs/mugen/requirements.txt

- name: Setup mold
uses: rui314/setup-mold@v1

- name: Setup Z3 Solver
id: z3
uses: cda-tum/setup-z3@v1
Expand Down
Loading
Loading