Skip to content

Commit 8020f90

Browse files
committed
update examples
1 parent 2730e4b commit 8020f90

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+405
-338
lines changed

source/conf.py

+2
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
# add these directories to sys.path here. If the directory is relative to the
2020
# documentation root, use os.path.abspath to make it absolute, like shown here.
2121
#sys.path.insert(0, os.path.abspath('../../pyscf_master/pyscf'))
22+
sys.path.append(os.path.abspath("./tools/extensions"))
2223

2324
# -- General configuration ------------------------------------------------
2425

@@ -37,6 +38,7 @@
3738
#'sphinxcontrib.napoleon', # numpy style doc
3839
#'numpydoc', # numpy style doc
3940
'sphinxcontrib.bibtex',
41+
'pyscfdocext',
4042
]
4143

4244
# Add any paths that contain templates here, relative to this directory.

source/interface/dftd3.rst

+1-2
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,7 @@ An interface to `libdftd3 <https://github.com/cuanto/libdftd3>`_.
88
Examples
99
========
1010

11-
:download:`examples/dftd3/00-hf_with_dftd3.py </../examples/dftd3/00-hf_with_dftd3.py>`
12-
11+
* :source:`examples/dftd3/00-hf_with_dftd3.py`
1312

1413
Program reference
1514
=================

source/interface/dmrgscf.rst

+9-10
Original file line numberDiff line numberDiff line change
@@ -45,16 +45,15 @@ and set the correct path for the DMRG solver, and then run *e.g.*, ::
4545
Examples
4646
========
4747

48-
:download:`examples/dmrg/01-dmrg_casscf_with_block.py </../examples/dmrg/01-dmrg_casscf_with_block.py>`
49-
:download:`examples/dmrg/01-dmrg_casscf_with_stackblock.py </../examples/dmrg/01-dmrg_casscf_with_stackblock.py>`
50-
:download:`examples/dmrg/02-dmrg_nevpt2.py </../examples/dmrg/02-dmrg_nevpt2.py>`
51-
:download:`examples/dmrg/03-density_matrix.py </../examples/dmrg/03-density_matrix.py>`
52-
:download:`examples/dmrg/10-state_average.py </../examples/dmrg/10-state_average.py>`
53-
:download:`examples/dmrg/11-excited_states.py </../examples/dmrg/11-excited_states.py>`
54-
:download:`examples/dmrg/30-dmrg_casscf_nevpt2_for_Cr2.py </../examples/dmrg/30-dmrg_casscf_nevpt2_for_Cr2.py>`
55-
:download:`examples/dmrg/31-dmrg_casscf_for_feporph.py </../examples/dmrg/31-dmrg_casscf_for_feporph.py>`
56-
:download:`examples/dmrg/32-dmrg_casscf_nevpt2_for_FeS.py </../examples/dmrg/32-dmrg_casscf_nevpt2_for_FeS.py>`
57-
48+
* :source:`examples/dmrg/01-dmrg_casscf_with_block.py`
49+
* :source:`examples/dmrg/01-dmrg_casscf_with_stackblock.py`
50+
* :source:`examples/dmrg/02-dmrg_nevpt2.py`
51+
* :source:`examples/dmrg/03-density_matrix.py`
52+
* :source:`examples/dmrg/10-state_average.py`
53+
* :source:`examples/dmrg/11-excited_states.py`
54+
* :source:`examples/dmrg/30-dmrg_casscf_nevpt2_for_Cr2.py`
55+
* :source:`examples/dmrg/31-dmrg_casscf_for_feporph.py`
56+
* :source:`examples/dmrg/32-dmrg_casscf_nevpt2_for_FeS.py`
5857

5958
Program Reference
6059
=================

source/interface/geomopt.rst

+11-10
Original file line numberDiff line numberDiff line change
@@ -18,16 +18,17 @@ The following example shows how to optimize the structure of N\ :sub:`2`\ molec
1818
Examples
1919
========
2020

21-
:download:`examples/geomopt/01-geomeTRIC.py </../examples/geomopt/01-geomeTRIC.py>`
22-
:download:`examples/geomopt/01-pyberny.py </../examples/geomopt/01-pyberny.py>`
23-
:download:`examples/geomopt/02-as_pyscf_method.py </../examples/geomopt/02-as_pyscf_method.py>`
24-
:download:`examples/geomopt/10-with_qmmm.py </../examples/geomopt/10-with_qmmm.py>`
25-
:download:`examples/geomopt/12-excited_states.py </../examples/geomopt/12-excited_states.py>`
26-
:download:`examples/geomopt/12-mcscf_excited_states.py </../examples/geomopt/12-mcscf_excited_states.py>`
27-
:download:`examples/geomopt/13-ccsd_t.py </../examples/geomopt/13-ccsd_t.py>`
28-
:download:`examples/geomopt/14-with_solvent.py </../examples/geomopt/14-with_solvent.py>`
29-
:download:`examples/geomopt/20-callback.py </../examples/geomopt/20-callback.py>`
30-
21+
* :source:`examples/geomopt/01-geomeTRIC.py`
22+
* :source:`examples/geomopt/01-pyberny.py`
23+
* :source:`examples/geomopt/02-as_pyscf_method.py`
24+
* :source:`examples/geomopt/10-with_qmmm.py`
25+
* :source:`examples/geomopt/11-with_ghost_atom.py`
26+
* :source:`examples/geomopt/12-excited_states.py`
27+
* :source:`examples/geomopt/12-mcscf_excited_states.py`
28+
* :source:`examples/geomopt/13-ccsd_t.py`
29+
* :source:`examples/geomopt/14-with_solvent.py`
30+
* :source:`examples/geomopt/15-tddft_with_solvent.py`
31+
* :source:`examples/geomopt/20-callback.py`
3132

3233
Program reference
3334
=================

source/modules/adc.rst

+3-4
Original file line numberDiff line numberDiff line change
@@ -66,10 +66,9 @@ When using results of this code for publications, please cite the following pape
6666
Examples
6767
========
6868

69-
:download:`examples/adc/01-closed_shell.py </../examples/adc/01-closed_shell.py>`
70-
:download:`examples/adc/02-open_shell.py </../examples/adc/02-open_shell.py>`
71-
:download:`examples/adc/03-closed_shell_different_setup.py </../examples/adc/03-closed_shell_different_setup.py>`
72-
69+
* :source:`examples/adc/01-closed_shell.py`
70+
* :source:`examples/adc/02-open_shell.py`
71+
* :source:`examples/adc/03-closed_shell_different_setup.py`
7372

7473
Program reference
7574
=================

source/modules/ao2mo.rst

+8-10
Original file line numberDiff line numberDiff line change
@@ -9,19 +9,17 @@
99

1010
The :mod:`ao2mo` module implements transformations from AO to MO integrals for various permutational and spin symmetries.
1111

12-
1312
Examples
1413
========
1514

16-
:download:`examples/ao2mo/00-mo_integrals.py </../examples/ao2mo/00-mo_integrals.py>`
17-
:download:`examples/ao2mo/01-outcore.py </../examples/ao2mo/01-outcore.py>`
18-
:download:`examples/ao2mo/04-dirac_hf_mo_integrals.py </../examples/ao2mo/04-dirac_hf_mo_integrals.py>`
19-
:download:`examples/ao2mo/10-diff_orbs_for_ijkl.py </../examples/ao2mo/10-diff_orbs_for_ijkl.py>`
20-
:download:`examples/ao2mo/11-ump2.py </../examples/ao2mo/11-ump2.py>`
21-
:download:`examples/ao2mo/20-eri_grad_hess.py </../examples/ao2mo/20-eri_grad_hess.py>`
22-
:download:`examples/ao2mo/21-spin_orbit_coupling.py </../examples/ao2mo/21-spin_orbit_coupling.py>`
23-
:download:`examples/ao2mo/22-rkb_no_pair_ints.py </../examples/ao2mo/22-rkb_no_pair_ints.py>`
24-
15+
* :source:`examples/ao2mo/00-mo_integrals.py`
16+
* :source:`examples/ao2mo/01-outcore.py`
17+
* :source:`examples/ao2mo/04-dirac_hf_mo_integrals.py`
18+
* :source:`examples/ao2mo/10-diff_orbs_for_ijkl.py`
19+
* :source:`examples/ao2mo/11-ump2.py`
20+
* :source:`examples/ao2mo/20-eri_grad_hess.py`
21+
* :source:`examples/ao2mo/21-spin_orbit_coupling.py`
22+
* :source:`examples/ao2mo/22-rkb_no_pair_ints.py`
2523

2624
Program reference
2725
=================

source/modules/cc.rst

+21-2
Original file line numberDiff line numberDiff line change
@@ -101,10 +101,29 @@ the analytical CCSD gradient module.
101101
Examples
102102
========
103103

104+
* :source:`examples/cc/00-simple_ccsd.py`
105+
* :source:`examples/cc/00-simple_ccsd_t.py`
106+
* :source:`examples/cc/01-density_matrix.py`
107+
* :source:`examples/cc/01-lambda.py`
108+
* :source:`examples/cc/10-ao_direct_ccsd.py`
109+
* :source:`examples/cc/11-frozen_core.py`
110+
* :source:`examples/cc/12-reuse_integrals.py`
111+
* :source:`examples/cc/13-standalone_ccsd_t.py`
112+
* :source:`examples/cc/14-ccsd_diis.py`
113+
* :source:`examples/cc/15-incore_mo_ccsd_t.py`
114+
* :source:`examples/cc/20-ip_ea_eom_ccsd.py`
115+
* :source:`examples/cc/21-dfccsd.py`
116+
* :source:`examples/cc/22-fnoccsd.py`
117+
* :source:`examples/cc/31-remove_linear_dep.py`
118+
* :source:`examples/cc/32-restart.py`
119+
* :source:`examples/cc/40-ccsd_custom_hamiltonian.py`
120+
* :source:`examples/cc/41-ccsd_custom_hamiltonian_noscf.py`
121+
* :source:`examples/cc/42-as_casci_fcisolver.py`
122+
* :source:`examples/cc/43-ccd.py`
123+
104124
This section documents some examples about how to effectively use the CCSD
105125
module, and how to incorporate the CCSD solver with other PySCF functions to
106-
perform advanced simulations. For a complete list of CC examples, see
107-
``pyscf/examples/cc``.
126+
perform advanced simulations.
108127

109128
A general solver for customized Hamiltonian
110129
-------------------------------------------

source/modules/ci.rst

+4-5
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,10 @@ The :mod:`ci` module implements the truncated CI model.
1212
Examples
1313
========
1414

15-
:download:`examples/ci/00-simple_cisd.py </../examples/ci/00-simple_cisd.py>`
16-
:download:`examples/ci/01-density_matrix.py </../examples/ci/01-density_matrix.py>`
17-
:download:`examples/ci/20-from_fci.py </../examples/ci/20-from_fci.py>`
18-
:download:`examples/ci/32-wfn_overlap.py </../examples/ci/32-wfn_overlap.py>`
19-
15+
* :source:`examples/ci/00-simple_cisd.py`
16+
* :source:`examples/ci/01-density_matrix.py`
17+
* :source:`examples/ci/20-from_fci.py`
18+
* :source:`examples/ci/32-wfn_overlap.py`
2019

2120
Program reference
2221
=================

source/modules/df.rst

+9-9
Original file line numberDiff line numberDiff line change
@@ -298,15 +298,15 @@ CASSCF object::
298298
Examples
299299
========
300300

301-
Relevant examples
302-
:file:`examples/df/00-with_df.py`
303-
:file:`examples/df/01-auxbasis.py`
304-
:file:`examples/df/10-access_df_integrals.py`
305-
:file:`examples/df/11-get_j_io_free.py`
306-
:file:`examples/df/40-precompute_df_integrals.py`
307-
:file:`examples/df/40-custom_df_hamiltonian.py`
308-
:file:`examples/df/41-df_integrals_gradients.py`
309-
:file:`examples/df/42-overwrite_get_jk.py`
301+
* :source:`examples/df/00-with_df.py`
302+
* :source:`examples/df/01-auxbasis.py`
303+
* :source:`examples/df/10-access_df_integrals.py`
304+
* :source:`examples/df/11-access_df_tensor.py`
305+
* :source:`examples/df/11-get_j_io_free.py`
306+
* :source:`examples/df/40-custom_df_hamiltonian.py`
307+
* :source:`examples/df/40-precompute_df_integrals.py`
308+
* :source:`examples/df/41-df_integrals_gradients.py`
309+
* :source:`examples/df/42-overwrite_get_jk.py`
310310

311311

312312
Program reference

source/modules/dft.rst

+17-13
Original file line numberDiff line numberDiff line change
@@ -10,19 +10,23 @@ The :mod:`dft` module implements Kohn-Sham density functional theory. Also see :
1010
Examples
1111
========
1212

13-
:download:`examples/dft/00-simple_dft.py </../examples/dft/00-simple_dft.py>`
14-
:download:`examples/dft/02-gks.py </../examples/dft/02-gks.py>`
15-
:download:`examples/dft/11-grid_scheme.py </../examples/dft/11-grid_scheme.py>`
16-
:download:`examples/dft/12-camb3lyp.py </../examples/dft/12-camb3lyp.py>`
17-
:download:`examples/dft/13-rsh_dft.py </../examples/dft/13-rsh_dft.py>`
18-
:download:`examples/dft/21-x2c.py </../examples/dft/21-x2c.py>`
19-
:download:`examples/dft/23-decorate_scf.py </../examples/dft/23-decorate_scf.py>`
20-
:download:`examples/dft/24-custom_xc_functional.py </../examples/dft/24-custom_xc_functional.py>`
21-
:download:`examples/dft/24-define_xc_functional.py </../examples/dft/24-define_xc_functional.py>`
22-
:download:`examples/dft/32-broken_symmetry_dft.py </../examples/dft/32-broken_symmetry_dft.py>`
23-
:download:`examples/dft/32-xcfun_as_default.py </../examples/dft/32-xcfun_as_default.py>`
24-
:download:`examples/dft/33-nlc_functionals.py </../examples/dft/33-nlc_functionals.py>`
25-
13+
* :source:`examples/dft/00-simple_dft.py`
14+
* :source:`examples/dft/02-gks.py`
15+
* :source:`examples/dft/10-glycine.py`
16+
* :source:`examples/dft/11-grid_scheme.py`
17+
* :source:`examples/dft/12-camb3lyp.py`
18+
* :source:`examples/dft/13-rsh_dft.py`
19+
* :source:`examples/dft/20-density_fitting.py`
20+
* :source:`examples/dft/21-x2c.py`
21+
* :source:`examples/dft/22-newton.py`
22+
* :source:`examples/dft/23-decorate_scf.py`
23+
* :source:`examples/dft/24-custom_xc_functional.py`
24+
* :source:`examples/dft/24-define_xc_functional.py`
25+
* :source:`examples/dft/30-ao_value_on_grid.py`
26+
* :source:`examples/dft/31-xc_value_on_grid.py`
27+
* :source:`examples/dft/32-broken_symmetry_dft.py`
28+
* :source:`examples/dft/32-xcfun_as_default.py`
29+
* :source:`examples/dft/33-nlc_functionals.py`
2630

2731
Program reference
2832
=================

source/modules/doci.rst

+1-3
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,7 @@ The :mod:`doci` implements doubly-occupied configuration interaction. A minimal
1515
Examples
1616
========
1717

18-
Relevant examples
19-
:file:`examples/doci/00-simple_doci_casscf.py`
20-
18+
* :source:`examples/doci/00-simple_doci_casscf.py`
2119

2220
Program reference
2321
=================

source/modules/fci.rst

+13-2
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,19 @@ One example for FCI calculation on HF molecule::
1919
Examples
2020
========
2121

22-
For a complete list of FCI examples, see
23-
``pyscf/examples/fci``.
22+
* :source:`examples/fci/00-simple_fci.py`
23+
* :source:`examples/fci/01-given_h1e_h2e.py`
24+
* :source:`examples/fci/02-selected_ci.py`
25+
* :source:`examples/fci/10-spin.py`
26+
* :source:`examples/fci/11-large_ci.py`
27+
* :source:`examples/fci/12-multiple_roots.py`
28+
* :source:`examples/fci/13-wfn_symmetry.py`
29+
* :source:`examples/fci/14-density_matrix.py`
30+
* :source:`examples/fci/15-FCI_hamiltonian.py`
31+
* :source:`examples/fci/30-h6_scan.py`
32+
* :source:`examples/fci/31-apply_2nd_quantized_op.py`
33+
* :source:`examples/fci/32-wfn_overlap.py`
34+
* :source:`examples/fci/33-rotate_wfn.py`
2435

2536
Program reference
2637
=================

source/modules/grad.rst

+9-12
Original file line numberDiff line numberDiff line change
@@ -24,18 +24,15 @@ For example, the RHF gradient can be computed by::
2424
Examples
2525
========
2626

27-
Relevant examples
28-
:file:`examples/grad/01-scf_grad.py`
29-
:file:`examples/grad/02-dft_grad.py`
30-
:file:`examples/grad/03-mp2_grad.py`
31-
:file:`examples/grad/04-cisd_grad.py`
32-
:file:`examples/grad/05-ccsd_grad.py`
33-
:file:`examples/grad/06-tddft_gradients.py`
34-
:file:`examples/grad/10-excited_state_cisd_grad.py`
35-
:file:`examples/grad/11-excited_state_casci_grad.py`
36-
:file:`examples/grad/16-scan_force.py`
37-
38-
27+
* :source:`examples/grad/01-scf_grad.py`
28+
* :source:`examples/grad/02-dft_grad.py`
29+
* :source:`examples/grad/03-mp2_grad.py`
30+
* :source:`examples/grad/04-cisd_grad.py`
31+
* :source:`examples/grad/05-ccsd_grad.py`
32+
* :source:`examples/grad/06-tddft_gradients.py`
33+
* :source:`examples/grad/10-excited_state_cisd_grad.py`
34+
* :source:`examples/grad/11-excited_state_casci_grad.py`
35+
* :source:`examples/grad/16-scan_force.py`
3936

4037
Program reference
4138
=================

source/modules/gto.rst

+27-27
Original file line numberDiff line numberDiff line change
@@ -12,29 +12,29 @@ package.
1212
Examples
1313
========
1414

15-
:download:`examples/gto/00-input_mole.py </../examples/gto/00-input_mole.py>`
16-
:download:`examples/gto/01-input_geometry.py </../examples/gto/01-input_geometry.py>`
17-
:download:`examples/gto/02-dump_input.py </../examples/gto/02-dump_input.py>`
18-
:download:`examples/gto/03-ghost_atom.py </../examples/gto/03-ghost_atom.py>`
19-
:download:`examples/gto/04-input_basis.py </../examples/gto/04-input_basis.py>`
20-
:download:`examples/gto/05-input_ecp.py </../examples/gto/05-input_ecp.py>`
21-
:download:`examples/gto/06-load_mol_from_chkfile.py </../examples/gto/06-load_mol_from_chkfile.py>`
22-
:download:`examples/gto/07-nucmod.py </../examples/gto/07-nucmod.py>`
23-
:download:`examples/gto/09-apply_scf.py </../examples/gto/09-apply_scf.py>`
24-
:download:`examples/gto/10-atom_info.py </../examples/gto/10-atom_info.py>`
25-
:download:`examples/gto/11-basis_info.py </../examples/gto/11-basis_info.py>`
26-
:download:`examples/gto/12-serialization.py </../examples/gto/12-serialization.py>`
27-
:download:`examples/gto/13-symmetry.py </../examples/gto/13-symmetry.py>`
28-
:download:`examples/gto/20-ao_integrals.py </../examples/gto/20-ao_integrals.py>`
29-
:download:`examples/gto/20-ao_integrals_sph_to_spinor.py </../examples/gto/20-ao_integrals_sph_to_spinor.py>`
30-
:download:`examples/gto/20-soc_ao_integrals.py </../examples/gto/20-soc_ao_integrals.py>`
31-
:download:`examples/gto/20-soc_ecp.py </../examples/gto/20-soc_ecp.py>`
32-
:download:`examples/gto/21-concatenate_molecules.py </../examples/gto/21-concatenate_molecules.py>`
33-
:download:`examples/gto/22-range_separated_coulomb.py </../examples/gto/22-range_separated_coulomb.py>`
34-
:download:`examples/gto/23-orbitals_cart2sph.py </../examples/gto/23-orbitals_cart2sph.py>`
35-
:download:`examples/gto/24-ao_value_on_grid.py </../examples/gto/24-ao_value_on_grid.py>`
36-
:download:`examples/gto/25-multipole-integrals.py </../examples/gto/25-multipole-integrals.py>`
37-
:download:`examples/gto/30-read_molpro_orb.py </../examples/gto/30-read_molpro_orb.py>`
15+
* :source:`examples/gto/00-input_mole.py`
16+
* :source:`examples/gto/01-input_geometry.py`
17+
* :source:`examples/gto/02-dump_input.py`
18+
* :source:`examples/gto/03-ghost_atom.py`
19+
* :source:`examples/gto/04-input_basis.py`
20+
* :source:`examples/gto/05-input_ecp.py`
21+
* :source:`examples/gto/06-load_mol_from_chkfile.py`
22+
* :source:`examples/gto/07-nucmod.py`
23+
* :source:`examples/gto/09-apply_scf.py`
24+
* :source:`examples/gto/10-atom_info.py`
25+
* :source:`examples/gto/11-basis_info.py`
26+
* :source:`examples/gto/12-serialization.py`
27+
* :source:`examples/gto/13-symmetry.py`
28+
* :source:`examples/gto/20-ao_integrals.py`
29+
* :source:`examples/gto/20-ao_integrals_sph_to_spinor.py`
30+
* :source:`examples/gto/20-soc_ao_integrals.py`
31+
* :source:`examples/gto/20-soc_ecp.py`
32+
* :source:`examples/gto/21-concatenate_molecules.py`
33+
* :source:`examples/gto/22-range_separated_coulomb.py`
34+
* :source:`examples/gto/23-orbitals_cart2sph.py`
35+
* :source:`examples/gto/24-ao_value_on_grid.py`
36+
* :source:`examples/gto/25-multipole-integrals.py`
37+
* :source:`examples/gto/30-read_molpro_orb.py`
3838

3939
Input
4040
=====
@@ -164,7 +164,7 @@ Basis parser supports "Ghost" atom::
164164
mol.basis = {'GHOST': gto.basis.load('cc-pvdz', 'O'), 'H': 'sto3g'}
165165

166166
More examples of ghost atoms in input can be found in
167-
:download:`examples/gto/03-ghost_atom.py </../examples/gto/03-ghost_atom.py>`
167+
:source:`examples/gto/03-ghost_atom.py`.
168168

169169
Like the requirements of geometry input, you can use atomic symbol
170170
(case-insensitive) or the atomic nuclear charge, as the keyword of the
@@ -214,13 +214,13 @@ stuttgart
214214
============ ========================
215215

216216
ECP parameters can be specified directly in input script using NWChem format.
217-
Examples of ECP input can be found in :download:`examples/gto/05-input_ecp.py`.
217+
Examples of ECP input can be found in :source:`examples/gto/05-input_ecp.py`.
218218

219219
Spin-orbit ECP integrals can be evaluated using PySCF integral driver. However,
220220
SO-ECP is not automatically applied to any methods in current version. It needs
221221
to be added to core Hamiltonian as shown in example
222-
:download:`examples/gto/20-soc_ecp.py` and
223-
:download:`examples/scf/44-soc_ecp.py`.
222+
:source:`examples/gto/20-soc_ecp.py` and
223+
:source:`examples/scf/44-soc_ecp.py`.
224224
PySCF provides the following SOC-ECPs
225225

226226
============ ========================

source/modules/gw.rst

+5
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,11 @@
88
The :mod:`gw` module provides an exact :math:`N^6` scaling GW
99
implementation for eigenvalues.
1010

11+
Examples
12+
========
13+
14+
* :source:`examples/gw/00_pbc.py`
15+
1116
Program reference
1217
=================
1318

source/modules/hci.rst

+2-4
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,8 @@ See also :mod:`cornell_shci`.
1515
Examples
1616
========
1717

18-
Relevant examples
19-
:file:`examples/hci/00-simple_hci.py`
20-
:file:`examples/hci/10-spin.py`
21-
18+
* :source:`examples/hci/00-simple_hci.py`
19+
* :source:`examples/hci/10-spin.py`
2220

2321
Program reference
2422
=================

0 commit comments

Comments
 (0)