Skip to main content

A minimal example package (with pybind11)

Project description

pyconcord

Gitter

CI status
conda.recipe Conda Actions Status
pip builds Pip Actions Status

Installation

  • Clone this repository
  • brew install eigen
  • cd [this_repo]
  • uv venv .venv --python 3.9 && source .venv/bin/activate
  • uv pip install .[test]

To run tests:

pytest -s

To install from pypi:

uv pip install pyconcord --no-sources

Test call

import numpy as np
from scipy.sparse import identity
import pyconcord as pc
x = np.random.randn(13, 9)

n, p = x.shape
x0 = identity(p).tocoo()
omega = pc.concord(x, x0=x0, lambda1=0.3)
cov = np.round(omega.todense(), 2)
assert ~np.isinf(cov[0,0])
assert cov[0, 1] == cov[1, 0]

Files

This example has several files that are a good idea, but aren't strictly necessary. The necessary files are:

  • pyproject.toml: The Python project file
  • CMakeLists.txt: The CMake configuration file
  • src/main.cpp: The source file for the C++ build
  • src/pyconcord/__init__.py: The Python portion of the module. The root of the module needs to be <package_name>, src/<package_name>, or python/<package_name> to be auto-discovered.

These files are also expected and highly recommended:

  • .gitignore: Git's ignore list, also used by scikit-build-core to select files for the SDist
  • README.md: The source for the PyPI description
  • LICENSE: The license file

There are also several completely optional directories:

  • .github: configuration for Dependabot and GitHub Actions
  • conda.recipe: Example recipe. Normally you should submit projects to conda-forge instead of building them yourself, but this is useful for testing the example.
  • docs/: Documentation
  • tests/: Tests go here

And some optional files:

  • .pre-commit-config.yaml: Configuration for the fantastic static-check runner pre-commit.

This is a simplified version of the recommendations in the Scientific-Python Development Guide, which is a highly recommended read for anyone interested in Python package development (Scientific or not). The guide also has a cookiecutter that includes scikit-build-core and pybind11 as a backend choice.

CI Examples

There are examples for CI in .github/workflows. A simple way to produces binary "wheels" for all platforms is illustrated in the "wheels.yml" file, using cibuildwheel.

License

pybind11 is provided under a BSD-style license that can be found in the LICENSE file. By using, distributing, or contributing to this project, you agree to the terms and conditions of this license.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyconcord-0.4.2.tar.gz (2.2 MB view details)

Uploaded Source

Built Distributions

pyconcord-0.4.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (124.7 kB view details)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

pyconcord-0.4.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl (95.8 kB view details)

Uploaded PyPy macOS 11.0+ ARM64

pyconcord-0.4.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (125.3 kB view details)

Uploaded CPython 3.13 manylinux: glibc 2.17+ x86-64

pyconcord-0.4.2-cp313-cp313-macosx_11_0_arm64.whl (96.2 kB view details)

Uploaded CPython 3.13 macOS 11.0+ ARM64

pyconcord-0.4.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (125.5 kB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

pyconcord-0.4.2-cp312-cp312-macosx_11_0_arm64.whl (96.1 kB view details)

Uploaded CPython 3.12 macOS 11.0+ ARM64

pyconcord-0.4.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (126.2 kB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

pyconcord-0.4.2-cp311-cp311-macosx_11_0_arm64.whl (96.9 kB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

pyconcord-0.4.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (124.9 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

pyconcord-0.4.2-cp310-cp310-macosx_11_0_arm64.whl (95.6 kB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

File details

Details for the file pyconcord-0.4.2.tar.gz.

File metadata

  • Download URL: pyconcord-0.4.2.tar.gz
  • Upload date:
  • Size: 2.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for pyconcord-0.4.2.tar.gz
Algorithm Hash digest
SHA256 cb48ac6f895f277739d4b8fa34891edceafe154d107e23768efe5d39ebb6472c
MD5 933fca210a555ffac65e83b22a2aeae6
BLAKE2b-256 074631d1ec71d4c33bf6a0046fcf7a85f91e395ca0a2976a9179117887dd2102

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyconcord-0.4.2.tar.gz:

Publisher: wheels.yml on matzhaugen/pyccista

Attestations:

File details

Details for the file pyconcord-0.4.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyconcord-0.4.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e2ebbbab5d0517b721c9834e0a14e4f24f5dd0f27987ced9aff474e0337dd360
MD5 16f253a865753dfe0685ea1055543fe3
BLAKE2b-256 be2056b0846d888024b047b1f5e9ac19c0b12038ce9d75a6648ef30265089237

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyconcord-0.4.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: wheels.yml on matzhaugen/pyccista

Attestations:

File details

Details for the file pyconcord-0.4.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyconcord-0.4.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5b04612f41d685cac25f8e37f715d93381511a814b0746298fb10425b23ca1bf
MD5 a93234fe2967a3eb325b4c103b6df5a0
BLAKE2b-256 a32a21ffa295fa6845a6bfea3cdefb743ea0661114949bc07fbb8b52167db31c

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyconcord-0.4.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl:

Publisher: wheels.yml on matzhaugen/pyccista

Attestations:

File details

Details for the file pyconcord-0.4.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyconcord-0.4.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b9dc3a74fbd162c712c477f4668983bd93cbc2187465b9691801cb6a4fa4810f
MD5 654e20891f15c4c8cacf7bcc9d78989a
BLAKE2b-256 d37596eb939db3c492d751503571821091a22920a7335f0bf5e3d6ea34116534

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyconcord-0.4.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: wheels.yml on matzhaugen/pyccista

Attestations:

File details

Details for the file pyconcord-0.4.2-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyconcord-0.4.2-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9a86f3a4cf399d1c6a9d8c033dffe43bbc6d2d3fc9ae06243a9bab4406e37ddf
MD5 1f727ec87caddfb9df8d8325c999b3df
BLAKE2b-256 0f11ba05c9a43148e7559fc91ef6a0db9ebcbcf7d4f37343ae359e75ea093e83

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyconcord-0.4.2-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: wheels.yml on matzhaugen/pyccista

Attestations:

File details

Details for the file pyconcord-0.4.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyconcord-0.4.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 fa4f829eb69646a52ed7e936c93ed46796b0b4a2fcc4a4f230c7302642dc4041
MD5 22079fe098b4aacaab257bd79e3189d1
BLAKE2b-256 c56f39deaa50b68c0eef009cffcfcdb818b8759ad5ee2958bb4986a325ecca79

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyconcord-0.4.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: wheels.yml on matzhaugen/pyccista

Attestations:

File details

Details for the file pyconcord-0.4.2-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyconcord-0.4.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e32f184fd0148c0793d79ccf08582371ecac1c8a10da36f909b17d2c4ad126c0
MD5 5727cddbd8d1a6cce8b422a191f80869
BLAKE2b-256 e3e49cf8dd215edf4e1fe893a2ebf18697dfb4ed62fc0f2350322bef783a900d

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyconcord-0.4.2-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: wheels.yml on matzhaugen/pyccista

Attestations:

File details

Details for the file pyconcord-0.4.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyconcord-0.4.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 01474532d03d468b528cdec8e6e6920204e34998b4acb79568b9c9d7ddd29802
MD5 343bf6827bd87c84bd80eaeead371f8b
BLAKE2b-256 dd7a4539e66b237be5f1e99eb9c39a20050081a5475d60e9515ad2db58bb1193

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyconcord-0.4.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: wheels.yml on matzhaugen/pyccista

Attestations:

File details

Details for the file pyconcord-0.4.2-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyconcord-0.4.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f9472b5bb7277690079a813c9a6f40d05e15a152ac5c633cc8785fea8a3dbed0
MD5 1bdb07f99192aa5928e88f6fb7a79bd6
BLAKE2b-256 8c8e026c411c832616d4c1962332ba303d9f785158a332489556b3dd77595116

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyconcord-0.4.2-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: wheels.yml on matzhaugen/pyccista

Attestations:

File details

Details for the file pyconcord-0.4.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyconcord-0.4.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a963eea01a94acd172bd657c5fd9b8fb476c88b69923b5e3b6e0b4f898f8a246
MD5 6df29382573edfb8aad73e224d034aaf
BLAKE2b-256 6c72e6d096a995d7f710434db098c8080b6114fa66a19eed2b33088d08ba7795

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyconcord-0.4.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: wheels.yml on matzhaugen/pyccista

Attestations:

File details

Details for the file pyconcord-0.4.2-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyconcord-0.4.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4090c683a8af50c6f317141dc9b72885f683f0e75fb449e2a0ea638dbec80353
MD5 223ea66aafa74d00246f7087ab1a6d87
BLAKE2b-256 73a78d4625f8732c17ba0f23d57b9e129ecd87b366c68315aef26d31849e3351

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyconcord-0.4.2-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: wheels.yml on matzhaugen/pyccista

Attestations:

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page