Library / SDK
sdv-dev/Copulas avatar
sdv-dev/Copulas

Copulas declares three licences, classifies itself pre-alpha, and stopped releasing in February

A library to model multivariate data using copulas.

653 stars122 forksPythonNOASSERTION

At a glance

What is it?
The SDV project's copula library, installable from pip or conda, supporting Archimedian, Gaussian and Vine models. Its packaging metadata, its GitHub licence field and the page itself do not agree, and the last tagged release predates seven months of commits.
Who is it for?
The library itself is small and legible, and the parts that matter for using it are stated plainly: one fitting call, one sampling call, and per-Python dependency floors that tell you exactly what you will get. Three things to settle before you depend on it.
Can I use it commercially?
Check first. The repository uses a licence we do not classify automatically, so read its LICENSE file before any commercial use.
Is it still maintained?
Yes. The repository last received commits 14 days ago.
What is it written in?
Mainly Python, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 4, 2026, and from our analysis. They are not legal advice.

Editorial analysis

The licence is declared in three places and they do not agree

This repository is the clearest kind of licence inconsistency, so it is worth stating without picking a winner. The packaging metadata declares `license = 'BUSL-1.1'` and pairs it with `license-files = ['LICENSE']`, so a build reads the licence from a file in the root. The repository's own licence field, however, reports no recognised licence identifier rather than a name. The LICENSE file itself is present at the root. The README never mentions licensing at all: it moves from the forum and the contribution guide straight to credits. So a reader has a named licence in one place, an unasserted value in another, a file in a third, and no prose anywhere to reconcile them. Anyone shipping Copulas in a product has to read that file before deciding what obligations come with it.

A seven-year-old library is classified as pre-alpha software

The packaging metadata lists `Development Status :: 2 - Pre-Alpha` among its classifiers, and the badge row at the top of the page links to a PyPI search for exactly that development status. The next classifier is `Intended Audience :: Developers`. Set against the credits section, which says the project started at the Data to AI Lab at MIT in 2018, and the closing note about a company created in 2020 that now develops the largest ecosystem for synthetic data generation and evaluation, the classification reads oddly. Either it is a stale classifier nobody revisited, or it is a deliberate signal that the standalone library carries no stability promise while the integrated package does. Nothing in the page says which, and a user choosing between the standalone library and the integrated solution gets no help from the badge.

Bug reports are directed to a forum, not to the issue tracker

The support section has two paragraphs and both routes end in the same place. Questions or issues go to the DataCebo forum to discuss features, ask questions and get help. The next paragraph says that if you find a bug or want a feature you can also open an issue, and the link on the words open an issue points at that same forum URL rather than at the repository's issue tracker. So a bug report is expected to be filed as a forum post. The repository does have a `.github/` directory and a unit test workflow badge, so the project has continuous integration, but the page never sends anyone to either. Contributors are pointed at a contribution guide, and that document is where the actual process, including where changes go, is defined.

The usage example shows one model out of three families

The quick tour is four code blocks long. The first loads a bundled demo dataset of three numerical columns. The second fits a model and samples from it:

python
from copulas.multivariate import GaussianMultivariate

copula = GaussianMultivariate()
copula.fit(real_data)

synthetic_data = copula.sample(len(real_data))

The third compares the two side by side in 3D with `compare_3d`, and the key features paragraph promises 1D histograms and 2D scatterplots as well. What the tour never does is show an Archimedian or a Vine model, both of which are named in the same paragraph as the Gaussian one, so the choice between families is left to the documentation site. The tour also never shows how to persist a fitted model. The page's claim is access and manipulation, complete access to the internals so you can set or tune parameters, but no save, load or serialisation call appears anywhere in it.

Five numpy floors, five pandas floors, four scipy floors, two plotly floors

The dependency block is where the real engineering shows. Python support runs from 3.9 to just under 3.15, and every scientific dependency is pinned by interpreter version rather than by a single floor: numpy splits across five branches, starting at 1.21.0 below 3.10 and reaching 2.3.2 on 3.14, pandas across five from 1.4.0 to 2.3.3, scipy across four from 1.7.3 to 1.14.1, and plotly across two at 5.10.0 and 5.12.0. Every branch carries an upper bound of less than 3 on the major version of pandas. That is deliberate and it does protect users from a silent major upgrade, and it is also sixteen version branches to keep correct as each dependency releases, which is why a repository like this needs a requirements file it refreshes on a schedule.

The last release predates seven months of commits

Three tags are recent. v0.13.0 went out on 2 January 2026, v0.14.0 on 16 January, and v0.14.1 on 5 February, so the release line looks like it runs in bursts rather than steadily. The default branch has been pushed to as late as 21 September 2026, which leaves roughly seven and a half months of work between the newest tag and the tip of main. Nothing in the page says a new release is imminent, and no changelog summary is included. The repository does carry the files a project like this needs to answer the question, a HISTORY.md, a RELEASE.md, an INSTALL.md and a requirements file named for its latest state, so the history exists for anyone willing to go looking for it.

Two anchors are closed with an image tag and seven links carry no text

The markup has small errors worth knowing about if you fork the page. The badge row is seven links with nothing between the brackets, the images having been lost in the conversion. Two anchors are opened and then closed with `</img>`, once around the project logo and once around the DataCebo logo at the foot of the page, so a strict renderer will not close them the way the author intended. The tutorial link is a shortener, `https://bit.ly/copulas-demo`, standing in for a Colab notebook, which means the destination can change without the repository changing. The page also never mentions most of the repository's own tooling: a Makefile whose default goal is a help target, a tasks file, a static code analysis report, and an AUTHORS file, all of which sit at the root next to the docs and tests directories.

Editorial conclusion

The library itself is small and legible, and the parts that matter for using it are stated plainly: one fitting call, one sampling call, and per-Python dependency floors that tell you exactly what you will get. Three things to settle before you depend on it. First the licence, which the repository, its packaging metadata and the file at the root do not agree on, so read the LICENSE file rather than the badge. Second the release cadence: the newest tag is from February while the branch has moved on through September, so `pip install copulas` gives you something older than the source you can read. Third the classifier, which calls a seven-year-old library pre-alpha for developers, which is either an oversight in the packaging or a deliberate signal, and the page does not say. It suits someone exploring copula models on a single table of numeric columns. It does not suit a pipeline that needs a stable API promise, a clear licence, or a model persisted to disk without reading the documentation site first.

Frequently asked questions

What does the Copulas library do?

It learns a multivariate distribution from a table of numerical data and samples new rows that follow the same statistical properties. It offers Archimedian, Gaussian and Vine copulas, gives access to the learned parameters so they can be tuned, and ships visualization helpers for 1D histograms, 2D scatterplots and 3D scatterplots.

How do I install sdv-dev/Copulas?

Two documented commands, `pip install copulas` and `conda install -c conda-forge copulas`. The packaging metadata requires Python 3.9 or newer and below 3.15, with classifiers for every release from 3.9 through 3.14, and pins numpy, pandas, scipy and plotly to different floors per interpreter version.

Which copula models does Copulas include?

Archimedian copulas, Gaussian copulas and Vine copulas, all named in the overview. The usage example only fits a Gaussian model, using GaussianMultivariate with a fit call and a sample call, so the other two families have to be found in the documentation.

Can I save a fitted Copulas model?

The README does not show it. It states that you have complete access to the internals of the model and can set or tune parameters as you choose, then sends you to the documentation site. No save, load or serialisation call appears in the quick tour, so treat persistence as documented elsewhere rather than as part of the quick start.

Where should I report a bug in Copulas?

On the DataCebo forum. The README sends both questions and bug reports there, and the link on its open an issue phrase points at the forum rather than at the repository's issue tracker.

Official sources

  1. Issues
  2. Project website
  3. README
  4. Releases
  5. sdv-dev/Copulas on GitHub
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/sdv-dev-copulas.svg)](https://hysenlabs.com/projects/sdv-dev-copulas)