qc-PyCI 0.6.1a2__tar.gz
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.
- qc_pyci-0.6.1a2/.clang-format +137 -0
- qc_pyci-0.6.1a2/.github/workflows/pypi_release.yaml +171 -0
- qc_pyci-0.6.1a2/.github/workflows/python-app.yml +26 -0
- qc_pyci-0.6.1a2/.github/workflows/website.yml +70 -0
- qc_pyci-0.6.1a2/.gitignore +96 -0
- qc_pyci-0.6.1a2/.pre-commit-config.yaml +7 -0
- qc_pyci-0.6.1a2/.travis.yml +24 -0
- qc_pyci-0.6.1a2/CONTRIBUTORS +5 -0
- qc_pyci-0.6.1a2/LICENSE +674 -0
- qc_pyci-0.6.1a2/MANIFEST.in +7 -0
- qc_pyci-0.6.1a2/Makefile +116 -0
- qc_pyci-0.6.1a2/PKG-INFO +744 -0
- qc_pyci-0.6.1a2/README.md +32 -0
- qc_pyci-0.6.1a2/doc/Makefile +28 -0
- qc_pyci-0.6.1a2/doc/source/api.rst +142 -0
- qc_pyci-0.6.1a2/doc/source/conf.py +60 -0
- qc_pyci-0.6.1a2/doc/source/index.rst +28 -0
- qc_pyci-0.6.1a2/notebooks/fanci_tutorial.ipynb +277 -0
- qc_pyci-0.6.1a2/notebooks/pyci_tutorial.ipynb +453 -0
- qc_pyci-0.6.1a2/pyci/__init__.py +99 -0
- qc_pyci-0.6.1a2/pyci/cost_ci.py +54 -0
- qc_pyci-0.6.1a2/pyci/excitation_ci.py +39 -0
- qc_pyci-0.6.1a2/pyci/fanci/__init__.py +20 -0
- qc_pyci-0.6.1a2/pyci/fanci/ap1rog.py +182 -0
- qc_pyci-0.6.1a2/pyci/fanci/apig.py +177 -0
- qc_pyci-0.6.1a2/pyci/fanci/detratio.py +246 -0
- qc_pyci-0.6.1a2/pyci/fanci/fanci.py +714 -0
- qc_pyci-0.6.1a2/pyci/fanci/pccds.py +350 -0
- qc_pyci-0.6.1a2/pyci/fanci/test/__init__.py +35 -0
- qc_pyci-0.6.1a2/pyci/fanci/test/data/be_ccpvdz.fcidump +3728 -0
- qc_pyci-0.6.1a2/pyci/fanci/test/data/h2_hf_631gdp.fcidump +703 -0
- qc_pyci-0.6.1a2/pyci/fanci/test/data/h2_hf_sto6g.fcidump +13 -0
- qc_pyci-0.6.1a2/pyci/fanci/test/data/he_ccpvqz.fcidump +108542 -0
- qc_pyci-0.6.1a2/pyci/fanci/test/data/li2_631g.fcidump +9706 -0
- qc_pyci-0.6.1a2/pyci/fanci/test/data/li2_ccpvdz.fcidump +56774 -0
- qc_pyci-0.6.1a2/pyci/fanci/test/data/lih_631g.fcidump +1953 -0
- qc_pyci-0.6.1a2/pyci/fanci/test/data/lih_hf_sto6g.fcidump +240 -0
- qc_pyci-0.6.1a2/pyci/fanci/test/derivcheck.py +241 -0
- qc_pyci-0.6.1a2/pyci/fanci/test/test_ap1rog.py +137 -0
- qc_pyci-0.6.1a2/pyci/fanci/test/test_apig.py +153 -0
- qc_pyci-0.6.1a2/pyci/fanci/test/test_detratio.py +160 -0
- qc_pyci-0.6.1a2/pyci/fanci/test/test_objective_fanci.py +62 -0
- qc_pyci-0.6.1a2/pyci/fanci/test/test_pccds.py +228 -0
- qc_pyci-0.6.1a2/pyci/gkci.py +216 -0
- qc_pyci-0.6.1a2/pyci/include/SpookyV2.h +299 -0
- qc_pyci-0.6.1a2/pyci/include/pyci.h +808 -0
- qc_pyci-0.6.1a2/pyci/include/sort_with_arg.h +149 -0
- qc_pyci-0.6.1a2/pyci/pyci.so +0 -0
- qc_pyci-0.6.1a2/pyci/rdm/__init__.py +20 -0
- qc_pyci-0.6.1a2/pyci/rdm/algorithms.py +162 -0
- qc_pyci-0.6.1a2/pyci/rdm/conditions.py +0 -0
- qc_pyci-0.6.1a2/pyci/rdm/constraints.py +314 -0
- qc_pyci-0.6.1a2/pyci/rdm/tools.py +43 -0
- qc_pyci-0.6.1a2/pyci/seniority_ci.py +96 -0
- qc_pyci-0.6.1a2/pyci/src/SpookyV2.cpp +351 -0
- qc_pyci-0.6.1a2/pyci/src/ap1rog.cpp +220 -0
- qc_pyci-0.6.1a2/pyci/src/apig.cpp +195 -0
- qc_pyci-0.6.1a2/pyci/src/binding.cpp +1467 -0
- qc_pyci-0.6.1a2/pyci/src/common.cpp +325 -0
- qc_pyci-0.6.1a2/pyci/src/dociwfn.cpp +58 -0
- qc_pyci-0.6.1a2/pyci/src/enpt2.cpp +411 -0
- qc_pyci-0.6.1a2/pyci/src/fanci.cpp +261 -0
- qc_pyci-0.6.1a2/pyci/src/fullciwfn.cpp +61 -0
- qc_pyci-0.6.1a2/pyci/src/genciwfn.cpp +78 -0
- qc_pyci-0.6.1a2/pyci/src/hci.cpp +300 -0
- qc_pyci-0.6.1a2/pyci/src/onespinwfn.cpp +318 -0
- qc_pyci-0.6.1a2/pyci/src/overlap.cpp +78 -0
- qc_pyci-0.6.1a2/pyci/src/rdm.cpp +869 -0
- qc_pyci-0.6.1a2/pyci/src/sparseop.cpp +516 -0
- qc_pyci-0.6.1a2/pyci/src/squantop.cpp +225 -0
- qc_pyci-0.6.1a2/pyci/src/twospinwfn.cpp +345 -0
- qc_pyci-0.6.1a2/pyci/src/wfn.cpp +72 -0
- qc_pyci-0.6.1a2/pyci/test/__init__.py +44 -0
- qc_pyci-0.6.1a2/pyci/test/data/be_ccpvdz.fcidump +3728 -0
- qc_pyci-0.6.1a2/pyci/test/data/be_ccpvdz_spinres.npz +0 -0
- qc_pyci-0.6.1a2/pyci/test/data/h2_631gdp.fcidump +703 -0
- qc_pyci-0.6.1a2/pyci/test/data/h2_sto3g.fcidump +12 -0
- qc_pyci-0.6.1a2/pyci/test/data/h2o_ccpvdz.fcidump +56867 -0
- qc_pyci-0.6.1a2/pyci/test/data/h2o_ccpvdz_spinres.npz +0 -0
- qc_pyci-0.6.1a2/pyci/test/data/h4_sto3g.fcidump +63 -0
- qc_pyci-0.6.1a2/pyci/test/data/he_ccpvqz.fcidump +108542 -0
- qc_pyci-0.6.1a2/pyci/test/data/he_ccpvqz_spinres.npz +0 -0
- qc_pyci-0.6.1a2/pyci/test/data/li2_ccpvdz.fcidump +56774 -0
- qc_pyci-0.6.1a2/pyci/test/data/li2_ccpvdz_spinres.npz +0 -0
- qc_pyci-0.6.1a2/pyci/test/data/lih_sto6g.fcidump +240 -0
- qc_pyci-0.6.1a2/pyci/test/test_hamiltonian.py +39 -0
- qc_pyci-0.6.1a2/pyci/test/test_odometer.py +79 -0
- qc_pyci-0.6.1a2/pyci/test/test_routines.py +550 -0
- qc_pyci-0.6.1a2/pyci/test/test_wavefunction.py +182 -0
- qc_pyci-0.6.1a2/pyci/utility.py +233 -0
- qc_pyci-0.6.1a2/pyproject.toml +107 -0
- qc_pyci-0.6.1a2/qc_PyCI.egg-info/PKG-INFO +744 -0
- qc_pyci-0.6.1a2/qc_PyCI.egg-info/SOURCES.txt +107 -0
- qc_pyci-0.6.1a2/qc_PyCI.egg-info/dependency_links.txt +1 -0
- qc_pyci-0.6.1a2/qc_PyCI.egg-info/requires.txt +12 -0
- qc_pyci-0.6.1a2/qc_PyCI.egg-info/top_level.txt +1 -0
- qc_pyci-0.6.1a2/setup.cfg +11 -0
- qc_pyci-0.6.1a2/tools/conda.recipe/meta.yaml +34 -0
- qc_pyci-0.6.1a2/tools/python_include_dirs.py +6 -0
- qc_pyci-0.6.1a2/tools/setup-clangd +13 -0
- qc_pyci-0.6.1a2/website/_config.yml +73 -0
- qc_pyci-0.6.1a2/website/_toc.yml +15 -0
- qc_pyci-0.6.1a2/website/favicon.png +0 -0
- qc_pyci-0.6.1a2/website/install.rst +142 -0
- qc_pyci-0.6.1a2/website/intro.md +25 -0
- qc_pyci-0.6.1a2/website/logo.png +0 -0
- qc_pyci-0.6.1a2/website/requirements.txt +5 -0
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
---
|
|
2
|
+
Language: Cpp
|
|
3
|
+
# BasedOnStyle: LLVM
|
|
4
|
+
AccessModifierOffset: -4
|
|
5
|
+
AlignAfterOpenBracket: Align
|
|
6
|
+
AlignConsecutiveMacros: false
|
|
7
|
+
AlignConsecutiveAssignments: false
|
|
8
|
+
AlignConsecutiveDeclarations: false
|
|
9
|
+
AlignEscapedNewlines: Right
|
|
10
|
+
AlignOperands: true
|
|
11
|
+
AlignTrailingComments: true
|
|
12
|
+
AllowAllArgumentsOnNextLine: true
|
|
13
|
+
AllowAllConstructorInitializersOnNextLine: true
|
|
14
|
+
AllowAllParametersOfDeclarationOnNextLine: true
|
|
15
|
+
AllowShortBlocksOnASingleLine: Never
|
|
16
|
+
AllowShortCaseLabelsOnASingleLine: false
|
|
17
|
+
AllowShortFunctionsOnASingleLine: false
|
|
18
|
+
AllowShortLambdasOnASingleLine: All
|
|
19
|
+
AllowShortIfStatementsOnASingleLine: Never
|
|
20
|
+
AllowShortLoopsOnASingleLine: false
|
|
21
|
+
AlwaysBreakAfterDefinitionReturnType: None
|
|
22
|
+
AlwaysBreakAfterReturnType: None
|
|
23
|
+
AlwaysBreakBeforeMultilineStrings: true
|
|
24
|
+
AlwaysBreakTemplateDeclarations: true
|
|
25
|
+
BinPackArguments: true
|
|
26
|
+
BinPackParameters: true
|
|
27
|
+
BraceWrapping:
|
|
28
|
+
AfterCaseLabel: false
|
|
29
|
+
AfterClass: false
|
|
30
|
+
AfterControlStatement: false
|
|
31
|
+
AfterEnum: false
|
|
32
|
+
AfterFunction: false
|
|
33
|
+
AfterNamespace: false
|
|
34
|
+
AfterObjCDeclaration: false
|
|
35
|
+
AfterStruct: false
|
|
36
|
+
AfterUnion: false
|
|
37
|
+
AfterExternBlock: false
|
|
38
|
+
BeforeCatch: false
|
|
39
|
+
BeforeElse: false
|
|
40
|
+
IndentBraces: false
|
|
41
|
+
SplitEmptyFunction: true
|
|
42
|
+
SplitEmptyRecord: true
|
|
43
|
+
SplitEmptyNamespace: true
|
|
44
|
+
BreakBeforeBinaryOperators: None
|
|
45
|
+
BreakBeforeBraces: Attach
|
|
46
|
+
BreakBeforeInheritanceComma: false
|
|
47
|
+
BreakInheritanceList: BeforeColon
|
|
48
|
+
BreakBeforeTernaryOperators: true
|
|
49
|
+
BreakConstructorInitializersBeforeComma: false
|
|
50
|
+
BreakConstructorInitializers: BeforeColon
|
|
51
|
+
BreakAfterJavaFieldAnnotations: false
|
|
52
|
+
BreakStringLiterals: true
|
|
53
|
+
ColumnLimit: 100
|
|
54
|
+
CommentPragmas: '^ IWYU pragma:'
|
|
55
|
+
CompactNamespaces: false
|
|
56
|
+
ConstructorInitializerAllOnOneLineOrOnePerLine: false
|
|
57
|
+
ConstructorInitializerIndentWidth: 4
|
|
58
|
+
ContinuationIndentWidth: 4
|
|
59
|
+
Cpp11BracedListStyle: true
|
|
60
|
+
DeriveLineEnding: true
|
|
61
|
+
DerivePointerAlignment: false
|
|
62
|
+
DisableFormat: false
|
|
63
|
+
ExperimentalAutoDetectBinPacking: false
|
|
64
|
+
FixNamespaceComments: true
|
|
65
|
+
ForEachMacros:
|
|
66
|
+
- foreach
|
|
67
|
+
- Q_FOREACH
|
|
68
|
+
- BOOST_FOREACH
|
|
69
|
+
IncludeBlocks: Preserve
|
|
70
|
+
IncludeCategories:
|
|
71
|
+
- Regex: '^"(llvm|llvm-c|clang|clang-c)/'
|
|
72
|
+
Priority: 2
|
|
73
|
+
SortPriority: 0
|
|
74
|
+
- Regex: '^(<|"(gtest|gmock|isl|json)/)'
|
|
75
|
+
Priority: 3
|
|
76
|
+
SortPriority: 0
|
|
77
|
+
- Regex: '.*'
|
|
78
|
+
Priority: 1
|
|
79
|
+
SortPriority: 0
|
|
80
|
+
IncludeIsMainRegex: '(Test)?$'
|
|
81
|
+
IncludeIsMainSourceRegex: ''
|
|
82
|
+
IndentCaseLabels: false
|
|
83
|
+
IndentGotoLabels: true
|
|
84
|
+
IndentPPDirectives: None
|
|
85
|
+
IndentWidth: 4
|
|
86
|
+
IndentWrappedFunctionNames: false
|
|
87
|
+
JavaScriptQuotes: Leave
|
|
88
|
+
JavaScriptWrapImports: true
|
|
89
|
+
KeepEmptyLinesAtTheStartOfBlocks: true
|
|
90
|
+
MacroBlockBegin: ''
|
|
91
|
+
MacroBlockEnd: ''
|
|
92
|
+
MaxEmptyLinesToKeep: 1
|
|
93
|
+
NamespaceIndentation: None
|
|
94
|
+
ObjCBinPackProtocolList: Auto
|
|
95
|
+
ObjCBlockIndentWidth: 2
|
|
96
|
+
ObjCSpaceAfterProperty: false
|
|
97
|
+
ObjCSpaceBeforeProtocolList: true
|
|
98
|
+
PenaltyBreakAssignment: 2
|
|
99
|
+
PenaltyBreakBeforeFirstCallParameter: 19
|
|
100
|
+
PenaltyBreakComment: 300
|
|
101
|
+
PenaltyBreakFirstLessLess: 120
|
|
102
|
+
PenaltyBreakString: 1000
|
|
103
|
+
PenaltyBreakTemplateDeclaration: 10
|
|
104
|
+
PenaltyExcessCharacter: 1000000
|
|
105
|
+
PenaltyReturnTypeOnItsOwnLine: 60
|
|
106
|
+
PointerAlignment: Right
|
|
107
|
+
ReflowComments: true
|
|
108
|
+
SortIncludes: true
|
|
109
|
+
SortUsingDeclarations: true
|
|
110
|
+
SpaceAfterCStyleCast: false
|
|
111
|
+
SpaceAfterLogicalNot: false
|
|
112
|
+
SpaceAfterTemplateKeyword: false
|
|
113
|
+
SpaceBeforeAssignmentOperators: true
|
|
114
|
+
SpaceBeforeCpp11BracedList: false
|
|
115
|
+
SpaceBeforeCtorInitializerColon: true
|
|
116
|
+
SpaceBeforeInheritanceColon: true
|
|
117
|
+
SpaceBeforeParens: ControlStatements
|
|
118
|
+
SpaceBeforeRangeBasedForLoopColon: true
|
|
119
|
+
SpaceInEmptyBlock: false
|
|
120
|
+
SpaceInEmptyParentheses: false
|
|
121
|
+
SpacesBeforeTrailingComments: 1
|
|
122
|
+
SpacesInAngles: false
|
|
123
|
+
SpacesInConditionalStatement: false
|
|
124
|
+
SpacesInContainerLiterals: true
|
|
125
|
+
SpacesInCStyleCastParentheses: false
|
|
126
|
+
SpacesInParentheses: false
|
|
127
|
+
SpacesInSquareBrackets: false
|
|
128
|
+
SpaceBeforeSquareBrackets: false
|
|
129
|
+
Standard: Latest
|
|
130
|
+
StatementMacros:
|
|
131
|
+
- Q_UNUSED
|
|
132
|
+
- QT_REQUIRE_VERSION
|
|
133
|
+
TabWidth: 8
|
|
134
|
+
UseCRLF: false
|
|
135
|
+
UseTab: Never
|
|
136
|
+
...
|
|
137
|
+
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
# This workflow is adapted from:
|
|
2
|
+
# https://packaging.python.org/en/latest/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows/
|
|
3
|
+
|
|
4
|
+
name: PyPI Release
|
|
5
|
+
on:
|
|
6
|
+
push:
|
|
7
|
+
tags:
|
|
8
|
+
# Trigger on version tags (e.g., v1.0.0)
|
|
9
|
+
- "v[0-9].[0-9].[0-9]*"
|
|
10
|
+
- "[0-9].[0-9].[0-9]*"
|
|
11
|
+
# Trigger on pre-release tags (e.g., v1.0.0-alpha.1)
|
|
12
|
+
- "v[0-9].[0-9].[0-9]*-*"
|
|
13
|
+
- "[0-9].[0-9].[0-9]*-*"
|
|
14
|
+
|
|
15
|
+
env:
|
|
16
|
+
# The name of the package to be published to PyPI and TestPyPI.
|
|
17
|
+
PYPI_NAME: qc-PyCI
|
|
18
|
+
|
|
19
|
+
jobs:
|
|
20
|
+
build:
|
|
21
|
+
name: Build distribution
|
|
22
|
+
runs-on: ${{ matrix.os }}
|
|
23
|
+
strategy:
|
|
24
|
+
matrix:
|
|
25
|
+
# os: [ubuntu-latest, macos-latest]
|
|
26
|
+
# python-version: ["3.9", "3.10", "3.11", "3.12"]
|
|
27
|
+
os: [ubuntu-latest]
|
|
28
|
+
python-version: ["3.12"]
|
|
29
|
+
|
|
30
|
+
steps:
|
|
31
|
+
# # TODO: Add C++ compliers
|
|
32
|
+
# # Fetch CUDA toolkit using Jimver/cuda-toolkit
|
|
33
|
+
# - name: Fetch CUDA toolkit
|
|
34
|
+
# uses: Jimver/cuda-toolkit@v0.2.18
|
|
35
|
+
# id: cuda-toolkit
|
|
36
|
+
# with:
|
|
37
|
+
# cuda: "12.1.0"
|
|
38
|
+
|
|
39
|
+
# - name: Check nvcc version
|
|
40
|
+
# run: nvcc -V
|
|
41
|
+
|
|
42
|
+
- uses: actions/checkout@v4
|
|
43
|
+
with:
|
|
44
|
+
fetch-depth: 0
|
|
45
|
+
|
|
46
|
+
- name: Set up Python
|
|
47
|
+
uses: actions/setup-python@v5
|
|
48
|
+
# with:
|
|
49
|
+
# python-version: "3.12"
|
|
50
|
+
with:
|
|
51
|
+
python-version: ${{ matrix.python-version }}
|
|
52
|
+
|
|
53
|
+
- name: Install system dependencies (Ubuntu)
|
|
54
|
+
if: runner.os == 'Linux'
|
|
55
|
+
run: |
|
|
56
|
+
sudo apt-get update
|
|
57
|
+
sudo apt-get install -y make gcc g++ python3-dev
|
|
58
|
+
|
|
59
|
+
- name: Install system dependencies (macOS)
|
|
60
|
+
if: runner.os == 'macOS'
|
|
61
|
+
run: |
|
|
62
|
+
brew install gcc make
|
|
63
|
+
|
|
64
|
+
- name: Install development and distributions version
|
|
65
|
+
run: |
|
|
66
|
+
pip install --upgrade pip
|
|
67
|
+
pip install -v .
|
|
68
|
+
pip install pytest build
|
|
69
|
+
|
|
70
|
+
- name: Build Source Distribution
|
|
71
|
+
run: |
|
|
72
|
+
make
|
|
73
|
+
make test
|
|
74
|
+
python -m build --sdist
|
|
75
|
+
|
|
76
|
+
- name: Store the distribution packages
|
|
77
|
+
uses: actions/upload-artifact@v4
|
|
78
|
+
with:
|
|
79
|
+
name: python-package-distributions
|
|
80
|
+
path: dist/
|
|
81
|
+
|
|
82
|
+
publish-to-pypi:
|
|
83
|
+
name: Publish Python distribution to PyPI
|
|
84
|
+
# only publish to PyPI on tag pushes
|
|
85
|
+
if: startsWith(github.ref, 'refs/tags/')
|
|
86
|
+
needs:
|
|
87
|
+
- build
|
|
88
|
+
runs-on: ubuntu-latest
|
|
89
|
+
environment:
|
|
90
|
+
name: PyPI-Release
|
|
91
|
+
url: https://pypi.org/project/${{ env.PYPI_NAME }}
|
|
92
|
+
permissions:
|
|
93
|
+
id-token: write
|
|
94
|
+
|
|
95
|
+
steps:
|
|
96
|
+
- name: Download all the dists
|
|
97
|
+
uses: actions/download-artifact@v4
|
|
98
|
+
with:
|
|
99
|
+
name: python-package-distributions
|
|
100
|
+
path: dist/
|
|
101
|
+
- name: Publish distribution to PyPI
|
|
102
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
103
|
+
env:
|
|
104
|
+
TWINE_USERNAME: "__token__"
|
|
105
|
+
TWINE_PASSWORD: ${{ secrets.PYPI_TOKEN }}
|
|
106
|
+
|
|
107
|
+
github-release:
|
|
108
|
+
name: Sign the Python distribution with Sigstore and upload them to GitHub Release
|
|
109
|
+
needs:
|
|
110
|
+
- publish-to-pypi
|
|
111
|
+
runs-on: ubuntu-latest
|
|
112
|
+
|
|
113
|
+
permissions:
|
|
114
|
+
contents: write
|
|
115
|
+
id-token: write
|
|
116
|
+
|
|
117
|
+
steps:
|
|
118
|
+
- name: Download all the dists
|
|
119
|
+
uses: actions/download-artifact@v4
|
|
120
|
+
with:
|
|
121
|
+
name: python-package-distributions
|
|
122
|
+
path: dist/
|
|
123
|
+
- name: Sign the dists with Sigstore
|
|
124
|
+
uses: sigstore/gh-action-sigstore-python@v3.0.0
|
|
125
|
+
with:
|
|
126
|
+
inputs: >-
|
|
127
|
+
./dist/*.tar.gz
|
|
128
|
+
|
|
129
|
+
- name: Create GitHub Release
|
|
130
|
+
env:
|
|
131
|
+
GITHUB_TOKEN: ${{ github.token }}
|
|
132
|
+
run: >-
|
|
133
|
+
gh release create
|
|
134
|
+
"${{ github.ref_name }}"
|
|
135
|
+
--repo "${{ github.repository }}"
|
|
136
|
+
--notes ""
|
|
137
|
+
- name: Upload artifact signatures to GitHub Release
|
|
138
|
+
env:
|
|
139
|
+
GITHUB_TOKEN: ${{ github.token }}
|
|
140
|
+
run: >-
|
|
141
|
+
gh release upload
|
|
142
|
+
"${{ github.ref_name }}" dist/**
|
|
143
|
+
--repo "${{ github.repository }}"
|
|
144
|
+
|
|
145
|
+
publish-to-testpypi:
|
|
146
|
+
name: Publish Python distribution to TestPyPI
|
|
147
|
+
# if: ${{ github.ref == "refs/heads/master" && github.repository_owner == "theochem" }}
|
|
148
|
+
needs:
|
|
149
|
+
- build
|
|
150
|
+
runs-on: ubuntu-latest
|
|
151
|
+
|
|
152
|
+
environment:
|
|
153
|
+
name: TestPyPI
|
|
154
|
+
url: https://test.pypi.org/project/${{ env.PYPI_NAME }}
|
|
155
|
+
|
|
156
|
+
permissions:
|
|
157
|
+
id-token: write
|
|
158
|
+
|
|
159
|
+
steps:
|
|
160
|
+
- name: Download all the dists
|
|
161
|
+
uses: actions/download-artifact@v4
|
|
162
|
+
with:
|
|
163
|
+
name: python-package-distributions
|
|
164
|
+
path: dist/
|
|
165
|
+
- name: Publish distribution to TestPyPI
|
|
166
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
167
|
+
with:
|
|
168
|
+
repository-url: https://test.pypi.org/legacy/
|
|
169
|
+
env:
|
|
170
|
+
TWINE_USERNAME: "__token__"
|
|
171
|
+
TWINE_PASSWORD: ${{ secrets.TEST_PYPI_TOKEN }}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
name: Test PyCI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [ master ]
|
|
6
|
+
pull_request:
|
|
7
|
+
branches: [ master ]
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
build:
|
|
11
|
+
|
|
12
|
+
runs-on: ubuntu-latest
|
|
13
|
+
|
|
14
|
+
steps:
|
|
15
|
+
- uses: actions/checkout@v2
|
|
16
|
+
- name: Set up Python 3.10
|
|
17
|
+
uses: actions/setup-python@v2
|
|
18
|
+
with:
|
|
19
|
+
python-version: "3.10"
|
|
20
|
+
- name: Install dependencies and make C++ library
|
|
21
|
+
run: |
|
|
22
|
+
python3 -m pip install --user numpy scipy pytest
|
|
23
|
+
PYTHON=python3 make
|
|
24
|
+
- name: Run PyCI tests
|
|
25
|
+
run: |
|
|
26
|
+
PYTHON=python3 make test
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
name: deploy-book
|
|
2
|
+
|
|
3
|
+
# Only run this when the master branch changes
|
|
4
|
+
on:
|
|
5
|
+
push:
|
|
6
|
+
branches:
|
|
7
|
+
- master
|
|
8
|
+
- website
|
|
9
|
+
|
|
10
|
+
pull_request:
|
|
11
|
+
types: [opened, synchronize, reopened, closed]
|
|
12
|
+
branches:
|
|
13
|
+
- main
|
|
14
|
+
# If your git repository has the Jupyter Book within some-subfolder next to
|
|
15
|
+
# unrelated files, you can make this run only if a file within that specific
|
|
16
|
+
# folder has been modified.
|
|
17
|
+
#
|
|
18
|
+
#paths:
|
|
19
|
+
#- book/
|
|
20
|
+
|
|
21
|
+
# This job installs dependencies, builds the book, and pushes it to `gh-pages`
|
|
22
|
+
jobs:
|
|
23
|
+
deploy-book:
|
|
24
|
+
runs-on: ubuntu-latest
|
|
25
|
+
permissions:
|
|
26
|
+
pages: write
|
|
27
|
+
# https://github.com/JamesIves/github-pages-deploy-action/issues/1110
|
|
28
|
+
contents: write
|
|
29
|
+
|
|
30
|
+
steps:
|
|
31
|
+
- uses: actions/checkout@v2
|
|
32
|
+
- name: Set up Python 3.10
|
|
33
|
+
uses: actions/setup-python@v2
|
|
34
|
+
with:
|
|
35
|
+
python-version: "3.10"
|
|
36
|
+
- name: Install dependencies and make C++ library
|
|
37
|
+
run: |
|
|
38
|
+
python3 -m pip install --user numpy scipy pytest pycodestyle pydocstyle
|
|
39
|
+
PYTHON=python3 make
|
|
40
|
+
python3 -m pip install .
|
|
41
|
+
|
|
42
|
+
- name: Install dependencies
|
|
43
|
+
run: |
|
|
44
|
+
python3 -m pip install -r website/requirements.txt
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
# Add soft links to the notebooks
|
|
48
|
+
- name: Add soft links to the notebooks
|
|
49
|
+
run: |
|
|
50
|
+
cd website
|
|
51
|
+
ln -s ../notebooks ./examples
|
|
52
|
+
ln -s ../doc/source ./api
|
|
53
|
+
cd ../
|
|
54
|
+
|
|
55
|
+
# Build the book
|
|
56
|
+
- name: Build the website
|
|
57
|
+
run: |
|
|
58
|
+
jupyter-book build ./website/
|
|
59
|
+
|
|
60
|
+
# Push the book's HTML to github-pages
|
|
61
|
+
# inspired by https://github.com/orgs/community/discussions/26724
|
|
62
|
+
# only push to gh-pages if the master branch has been updated
|
|
63
|
+
- name: GitHub Pages Action
|
|
64
|
+
# if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }}
|
|
65
|
+
uses: peaceiris/actions-gh-pages@v3
|
|
66
|
+
with:
|
|
67
|
+
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
68
|
+
publish_dir: ./website/_build/html
|
|
69
|
+
publish_branch: gh-pages
|
|
70
|
+
cname: pyci.qcdevs.org
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
# Prerequisites
|
|
2
|
+
*.d
|
|
3
|
+
|
|
4
|
+
# Compiled object files
|
|
5
|
+
*.slo
|
|
6
|
+
*.lo
|
|
7
|
+
*.o
|
|
8
|
+
*.obj
|
|
9
|
+
|
|
10
|
+
# Precompiled headers
|
|
11
|
+
*.gch
|
|
12
|
+
*.pch
|
|
13
|
+
|
|
14
|
+
# Compiled dynamic libraries
|
|
15
|
+
*.so
|
|
16
|
+
*.so.[0-9]*
|
|
17
|
+
*.dylib
|
|
18
|
+
*.dll
|
|
19
|
+
|
|
20
|
+
# Fortran module files
|
|
21
|
+
*.mod
|
|
22
|
+
*.smod
|
|
23
|
+
|
|
24
|
+
# Compiled static libraries
|
|
25
|
+
*.lai
|
|
26
|
+
*.la
|
|
27
|
+
*.a
|
|
28
|
+
*.lib
|
|
29
|
+
|
|
30
|
+
# Executables
|
|
31
|
+
*.exe
|
|
32
|
+
*.out
|
|
33
|
+
*.app
|
|
34
|
+
|
|
35
|
+
# Byte-compiled / optimized / DLL files
|
|
36
|
+
__pycache__/
|
|
37
|
+
*.py[cod]
|
|
38
|
+
*$py.class
|
|
39
|
+
|
|
40
|
+
# Distribution / packaging
|
|
41
|
+
.Python
|
|
42
|
+
build/
|
|
43
|
+
cover/
|
|
44
|
+
develop-eggs/
|
|
45
|
+
dist/
|
|
46
|
+
downloads/
|
|
47
|
+
eggs/
|
|
48
|
+
.eggs/
|
|
49
|
+
parts/
|
|
50
|
+
sdist/
|
|
51
|
+
var/
|
|
52
|
+
wheels/
|
|
53
|
+
.installed.cfg
|
|
54
|
+
MANIFEST
|
|
55
|
+
*.egg-info/
|
|
56
|
+
*.egg
|
|
57
|
+
*.manifest
|
|
58
|
+
*.spec
|
|
59
|
+
pip-log.txt
|
|
60
|
+
pip-delete-this-directory.txt
|
|
61
|
+
.pytest_cache/
|
|
62
|
+
.coverage
|
|
63
|
+
|
|
64
|
+
# Environments
|
|
65
|
+
.env
|
|
66
|
+
.venv
|
|
67
|
+
env/
|
|
68
|
+
venv/
|
|
69
|
+
ENV/
|
|
70
|
+
|
|
71
|
+
# Editor junk
|
|
72
|
+
tags
|
|
73
|
+
[._]*.s[a-v][a-z]
|
|
74
|
+
[._]*.sw[a-p]
|
|
75
|
+
[._]s[a-v][a-z]
|
|
76
|
+
[._]sw[a-p]
|
|
77
|
+
*~
|
|
78
|
+
\#*\#
|
|
79
|
+
.\#*
|
|
80
|
+
.ropeproject
|
|
81
|
+
.idea/
|
|
82
|
+
.spyderproject
|
|
83
|
+
.spyproject
|
|
84
|
+
.vscode/
|
|
85
|
+
|
|
86
|
+
# Documentation
|
|
87
|
+
doc/build/
|
|
88
|
+
|
|
89
|
+
# Clangd
|
|
90
|
+
compile_flags.txt
|
|
91
|
+
|
|
92
|
+
# Libraries
|
|
93
|
+
deps/
|
|
94
|
+
|
|
95
|
+
# Jupyter Notebooks
|
|
96
|
+
.ipynb_checkpoints
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
language: python
|
|
2
|
+
|
|
3
|
+
python:
|
|
4
|
+
- "3.6"
|
|
5
|
+
|
|
6
|
+
os:
|
|
7
|
+
- linux
|
|
8
|
+
|
|
9
|
+
dist:
|
|
10
|
+
- bionic
|
|
11
|
+
|
|
12
|
+
branches:
|
|
13
|
+
only:
|
|
14
|
+
- master
|
|
15
|
+
|
|
16
|
+
install:
|
|
17
|
+
- python -m pip install numpy scipy pytest pycodestyle pydocstyle
|
|
18
|
+
- make
|
|
19
|
+
- python -m pip install .
|
|
20
|
+
|
|
21
|
+
script:
|
|
22
|
+
- python -m pycodestyle pyci
|
|
23
|
+
- python -m pydocstyle pyci
|
|
24
|
+
- PYCI_NUM_THREADS=2 python -m pytest pyci
|