Skip to main content

No project description provided

Project description

Synthpop

This package is currently being developed. It mostly contains placeholders and documentation.

What is synthpop?

Synthpop is a package to generate synthetic data, primarily for use in data analysis. This Python package is a redesign of the existing R package, with approval from and cooperation with the R package author's.

The Synthpop R package has consistently been found to outperform other synthesis methods when it comes to generating synthetic data that is statistically similar to the original data. 1 2 3. We aim to have the Python package perform as least as well.

Synthetic data generated by the synthpop package do not have any row-to-row relationships between synthetic and real data. As such, it may be considered non-personal data in the concept of privacy laws such as the the GDPR.

The aim is to generate synthetic data that is as close to the observed data as possible without disclosing the actual data. This allows for analysis of sensitive data while adhering to the GDPR.

The R package has been used some time for this purpose.

The goals of this project

The goal of this project is to make it easier to generate synthetic data for data analysis. For now, we aim to make it easier for two groups of people. One group are people who are just starting out with synthetic data. The other group are people that want to provide synthetic data to third parties or want to include synthetic data in their standard toolbox.

General roadmap

The first aim is to make a package that is comparable to synthpop. This should attract enough active users to decide what the next aim should be.

About the team

There are 3 maintainers, all of which work for the dutch ministry of education, culture, and science. There is a commitment of about 1.5 fte for at least a year.

Contributing

If you wish to contribute to synthpop, start by cloning the repository.

Prerequisites

The project uses pipx and Poetry for dependency management. Follow the steps below after cloning the repository.

  1. Open a terminal in the root of the repository.
  2. Install pipx: py -m pip install --user pipx
  3. Navigate to Scripts folder (the exact path is shown in the warning from the previous command): cd <USER folder>\AppData\Roaming\Python\Python<VERSIE>\Scripts.
  4. Add pipx to your $PATH: run .\pipx.exe ensurepath
  5. Close the terminal and open a new one (anywhere).
  6. Verify the installation: pipx --version
  7. Install poetry: pipx install poetry
  8. Close the terminal and open a new one (anywhere).
  9. Verify the installation: poetry --version

You can close the terminal.

Install project dependencies

  1. Open a terminal in the root of the repository.
  2. Install all dependencies: poetry install --with=docs
  3. Navigate to the docs directory: cd docs
  4. Build the documentation: poetry run sphinx-build source build

You can close the terminal.

Install from GitHub source

Use one of the following workflows when you want to test the package directly from GitHub instead of PyPI.

Test the latest main branch without cloning

python -m pip install "git+https://github.com/duonl/synthpop-py.git@main"

Develop from a local clone

  1. Clone the repository: git clone https://github.com/duonl/synthpop-py.git
  2. Enter the project directory: cd synthpop-py
  3. Install the project and documentation dependencies: poetry install --with=docs
  4. Run project commands through Poetry, for example: poetry run pytest

Updating the documentation

After making changes to the documentation, rebuild the HTML output by running the following commands:

  1. Open a terminal in the root of the repository:
  2. Navigate to the docs directory: cd docs
  3. Delete current documentation files: poetry run sphinx-build -M clean source build
  4. Build the new documentation: poetry run sphinx-build source build

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

synthpop_py-0.1.0.tar.gz (32.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

synthpop_py-0.1.0-py3-none-any.whl (39.0 kB view details)

Uploaded Python 3

File details

Details for the file synthpop_py-0.1.0.tar.gz.

File metadata

  • Download URL: synthpop_py-0.1.0.tar.gz
  • Upload date:
  • Size: 32.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.4.1 CPython/3.14.4 Linux/7.0.0-27-generic

File hashes

Hashes for synthpop_py-0.1.0.tar.gz
Algorithm Hash digest
SHA256 a2c7838107fe1bedfa652ad96ccad9209a47c99de493c00c809a0350701d9052
MD5 b860599713074ff15b3f9f5d512154c0
BLAKE2b-256 50e2a7ffb07313de0f44d471853a1ba00c76fc3a3b7b5825b148bc88fb0f5771

See more details on using hashes here.

File details

Details for the file synthpop_py-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: synthpop_py-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 39.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.4.1 CPython/3.14.4 Linux/7.0.0-27-generic

File hashes

Hashes for synthpop_py-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9b21cf61a43e99ad65b6f5c1734c6874bdab4f9198ec76c0eaae9d378a1a282d
MD5 d91c1adb318ac7000faab413b15d1541
BLAKE2b-256 60e6c8f99c119b38c680f232c7fda91d0b8db63431d936c7113c0dbf06e94bc1

See more details on using hashes here.

Supported by

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