Skip to content

Commit

Permalink
Merge pull request #344 from sodascience/develop
Browse files Browse the repository at this point in the history
Release 1.1.0
  • Loading branch information
vankesteren authored Nov 25, 2024
2 parents 37b500d + 57f5bc1 commit 5a816c2
Show file tree
Hide file tree
Showing 108 changed files with 3,324 additions and 3,569 deletions.
82 changes: 82 additions & 0 deletions .github/workflows/core-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
name: Continuous integration for development

on:
pull_request:
branches: [ main, develop ]
push:
branches: [ main, develop ]

jobs:
check:
name: Lint and check types
strategy:
fail-fast: true
matrix:
python-version: ["3.9", "3.10", "3.11", "3.12"]
runs-on: "ubuntu-latest"
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
python -m pip install ".[check,extra]"
- name: Lint with Ruff
run: ruff check metasyn
- name: Check types with MyPy
run: mypy metasyn

test:
name: Run test suite
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
python-version: ["3.9", "3.10", "3.11", "3.12"]
include:
- os: macos-latest
python-version: "3.12"
- os: windows-latest
python-version: "3.12"
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
python -m pip install ".[test,extra]"
- name: Test with pytest
run: pytest tests
- name: Check notebook output
if: ${{ matrix.os != 'macos-latest' }}
run: pytest --nbval-lax examples
- name: Test basic example
run: python examples/basic_example.py
- name: Test CLI configuration example
run: |
pip install git+https://github.com/sodascience/metasyn-disclosure-control
pip install .
metasyn create-meta metasyn/demo/demo_titanic.csv --config examples/config_files/example_config.toml
build-docs:
name: Build documentation
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.x"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
python -m pip install ".[docs]"
- name: Build docs
run: sphinx-build -M html docs/source docs/build
2 changes: 1 addition & 1 deletion .github/workflows/joss-paper-draft.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Draft PDF
name: Build paper draft PDF
on:
push:
paths:
Expand Down
9 changes: 1 addition & 8 deletions .github/workflows/python-publish.yml
Original file line number Diff line number Diff line change
@@ -1,11 +1,6 @@
# This workflow will upload a Python Package using Twine when a release is created
# For more information see: https://help.github.com/en/actions/language-and-framework-guides/using-python-with-github-actions#publishing-to-package-registries

# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.

name: Upload Python Package

on:
Expand All @@ -17,13 +12,11 @@ permissions:

jobs:
deploy:

runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: '3.x'
- name: Install dependencies
Expand Down
69 changes: 0 additions & 69 deletions .github/workflows/python-test.yml

This file was deleted.

2 changes: 1 addition & 1 deletion .github/workflows/release-dockerhub.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Release Dockerhub
name: Release dockerfile to Dockerhub

on:
push:
Expand Down
71 changes: 71 additions & 0 deletions .github/workflows/scheduled-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
name: Scheduled CI suite on main and dev branches

on:
schedule:
- cron: "0 0 * * 0"
workflow_dispatch: # also allow manual trigger

jobs:
check:
name: Lint and check types
strategy:
fail-fast: false
matrix:
branch: ["main", "develop"]
python-version: ["3.9", "3.10", "3.11", "3.12"]
runs-on: "ubuntu-latest"
steps:
- uses: actions/checkout@v4
with:
ref: ${{ matrix.branch }}
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
python -m pip install ".[check,extra]"
- name: Lint with Ruff
run: ruff check metasyn
- name: Check types with MyPy
run: mypy metasyn

test:
name: Run test suite
strategy:
fail-fast: false
matrix:
branch: ["main", "develop"]
os: [ubuntu-latest]
python-version: ["3.9", "3.10", "3.11", "3.12"]
include:
- os: macos-latest
python-version: "3.12"
- os: windows-latest
python-version: "3.12"
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
with:
ref: ${{ matrix.branch }}
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
python -m pip install ".[test,extra]"
- name: Test with pytest
run: pytest tests
- name: Check notebook output
if: ${{ matrix.os != 'macos-latest' }}
run: pytest --nbval-lax examples
- name: Test basic example
run: python examples/basic_example.py
- name: Test CLI configuration example
run: |
pip install git+https://github.com/sodascience/metasyn-disclosure-control
pip install .
metasyn create-meta metasyn/demo/demo_titanic.csv --config examples/example_config.toml
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -151,3 +151,6 @@ docs/paper/media

# Generated api docs stuff
docs/source/api/generated

# uv stuff
uv.lock
15 changes: 6 additions & 9 deletions .readthedocs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,18 +10,15 @@ build:
os: ubuntu-20.04
tools:
python: "3.9"
# You can also specify other tool versions:
# nodejs: "16"
# rust: "1.55"
# golang: "1.17"

# Build documentation in the docs/ directory with Sphinx
sphinx:
configuration: docs/source/conf.py
configuration: docs/source/conf.py

# Optionally declare the Python requirements required to build your docs
python:
install:
- requirements: docs/requirements.txt
- method: pip
path: .
install:
- method: pip
path: .
extra_requirements:
- docs
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@

__Generate synthetic tabular data__ in a transparent, understandable, and privacy-friendly way. Metasyn makes it possible for owners of sensitive data to create test data, do open science, improve code reproducibility, encourage data reuse, and enhance accessibility of their datasets, without worrying about leaking private information.

With metasyn you can __fit__ a model to an existing dataframe, __export__ it to a transparent and auditable `.json` file, and __synthesize__ a dataframe that looks a lot like the real one. In contrast to most other synthetic data software, we make the explicit choice to strictly limit the statistical information in our model in order to adhere to the highest privacy standards.
With metasyn you can __fit__ a model to an existing dataframe, __save__ it to a transparent and auditable `.json` file, and __synthesize__ a dataframe that looks a lot like the real one. In contrast to most other synthetic data software, we make the explicit choice to strictly limit the statistical information in our model in order to adhere to the highest privacy standards.

## Highlights
- 👋 __Accessible__. Metasyn is designed to be easy to use and understand, and we do our best to be welcoming to newcomers and novice users. [Let us know](https://github.com/sodascience/metasyn/issues/new) if we can improve!
Expand Down
17 changes: 12 additions & 5 deletions docs/paper/paper.bib
Original file line number Diff line number Diff line change
Expand Up @@ -150,9 +150,16 @@ @inproceedings{ping2017datasynthesizer
}

@article{vankesteren2024democratize,
title={To democratize research with sensitive data, we should make synthetic data more accessible},
author={{van Kesteren}, Erik-Jan},
journal={arXiv preprint arXiv:2404.17271},
year={2024},
doi={10.48550/arXiv.2404.17271}
title = {To democratize research with sensitive data, we should make synthetic data more accessible},
volume = {5},
ISSN = {2666-3899},
url = {http://dx.doi.org/10.1016/j.patter.2024.101049},
DOI = {10.1016/j.patter.2024.101049},
number = {9},
journal = {Patterns},
publisher = {Elsevier BV},
author = {{van Kesteren}, Erik-Jan},
year = {2024},
month = sep,
pages = {101049}
}
Loading

0 comments on commit 5a816c2

Please sign in to comment.