ssm-simulators


Namessm-simulators JSON
Version 0.7.0 PyPI version JSON
download
home_page
SummarySSMS is a package collecting simulators and training data generators for a bunch of generative models of interest in the cognitive science / neuroscience and approximate bayesian computation communities
upload_time2024-02-10 02:43:27
maintainer
docs_urlNone
author
requires_python<3.12,>3.8
license
keywords simulators generative models cognitive science neuroscience
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # SSMS (Sequential Sampling Model Simulators)
Python Package which collects simulators for Sequential Sampling Models.

Find the package documentation [here](https://alexanderfengler.github.io/ssm-simulators/).

![PyPI](https://img.shields.io/pypi/v/ssm-simulators)
![PyPI_dl](https://img.shields.io/pypi/dm/ssm-simulators)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/ambv/black)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

### Quick Start

The `ssms` package serves two purposes. 

1. Easy access to *fast simulators of sequential sampling models*
2. Support infrastructure to construct training data for various approaches to likelihood / posterior amortization

We provide two minimal examples here to illustrate how to use each of the two capabilities.

#### Install

Let's start with *installing* the `ssms` package.

You can do so by typing,

`pip install git+https://github.com/AlexanderFengler/ssm_simulators`

in your terminal.

Below you find a basic tutorial on how to use the package.

#### Tutorial

```python
# Import necessary packages
import numpy as np
import pandas as pd
import ssms
```

#### Using the Simulators

Let's start with using the basic simulators. 
You access the main simulators through the  `ssms.basic_simulators.simulator` function.

To get an idea about the models included in `ssms`, use the `config` module.
The central dictionary with metadata about included models sits in `ssms.config.model_config`. 


```python
# Check included models
list(ssms.config.model_config.keys())[:10]

```

    ['ddm',
     'ddm_legacy',
     'angle',
     'weibull',
     'levy',
     'levy_angle',
     'full_ddm',
     'ornstein',
     'ornstein_angle',
     'ddm_sdv']


```python
# Take an example config for a given model
ssms.config.model_config['ddm']
```

    {'name': 'ddm',
     'params': ['v', 'a', 'z', 't'],
     'param_bounds': [[-3.0, 0.3, 0.1, 0.0], [3.0, 2.5, 0.9, 2.0]],
     'boundary': <function ssms.basic_simulators.boundary_functions.constant(t=0)>,
     'n_params': 4,
     'default_params': [0.0, 1.0, 0.5, 0.001],
     'hddm_include': ['z'],
     'nchoices': 2}



**Note:**
The usual structure of these models includes,

- Parameter names (`'params'`)
- Bounds on the parameters (`'param_bounds'`)
- A function that defines a boundary for the respective model (`'boundary'`)
- The number of parameters (`'n_params'`)
- Defaults for the parameters (`'default_params'`)
- The number of choices the process can produce (`'nchoices'`)

The `'hddm_include'` key concerns information useful for integration with the [hddm](https://github.com/hddm-devs/hddm) python package, which facilitates hierarchical bayesian inference for sequential sampling models. It is not important for the present tutorial.


```python
from ssms.basic_simulators.simulator import simulator
sim_out = simulator(model = 'ddm', 
                    theta = {'v': 0, 
                             'a': 1,
                             'z': 0.5,
                             't': 0.5,
                    },
                    n_samples = 1000)
```

The output of the simulator is a `dictionary` with three elements.

1. `rts` (array)
2. `choices` (array)
3. `metadata` (dictionary)

The `metadata` includes the named parameters, simulator settings, and more.

#### Using the Training Data Generators

The training data generators sit on top of the simulator function to turn raw simulations into usable training data for training machine learning algorithms aimed at posterior or likelihood armortization.

We will use the `data_generator` class from `ssms.dataset_generators`. Initializing the `data_generator` boils down to supplying two configuration dictionaries.

1. The `generator_config`, concerns choices as to what kind of training data one wants to generate.
2. The `model_config` concerns choices with respect to the underlying generative *sequential sampling model*.

We will consider a basic example here, concerning data generation to prepare for training [LANs](https://elifesciences.org/articles/65074).

Let's start by peeking at an example `generator_config`.

```python
ssms.config.data_generator_config['lan']['mlp']
```

    {'output_folder': 'data/lan_mlp/',
     'dgp_list': 'ddm',
     'nbins': 0,
     'n_samples': 100000,
     'n_parameter_sets': 10000,
     'n_parameter_sets_rejected': 100,
     'n_training_samples_by_parameter_set': 1000,
     'max_t': 20.0,
     'delta_t': 0.001,
     'pickleprotocol': 4,
     'n_cpus': 'all',
     'kde_data_mixture_probabilities': [0.8, 0.1, 0.1],
     'simulation_filters': {'mode': 20,
      'choice_cnt': 0,
      'mean_rt': 17,
      'std': 0,
      'mode_cnt_rel': 0.9},
     'negative_rt_cutoff': -66.77497,
     'n_subruns': 10,
     'bin_pointwise': False,
     'separate_response_channels': False}

You usually have to make just few changes to this basic configuration dictionary.
An example below.

```python
from copy import deepcopy
# Initialize the generator config (for MLP LANs)
generator_config = deepcopy(ssms.config.data_generator_config['lan']['mlp'])
# Specify generative model (one from the list of included models mentioned above)
generator_config['dgp_list'] = 'angle' 
# Specify number of parameter sets to simulate
generator_config['n_parameter_sets'] = 100 
# Specify how many samples a simulation run should entail
generator_config['n_samples'] = 1000
```

Now let's define our corresponding `model_config`.

```python
model_config = ssms.config.model_config['angle']
print(model_config)
```
    {'name': 'angle', 'params': ['v', 'a', 'z', 't', 'theta'], 
    'param_bounds': [[-3.0, 0.3, 0.1, 0.001, -0.1], [3.0, 3.0, 0.9, 2.0, 1.3]], 
    'boundary': <function angle at 0x11b2a7c10>, 
    'n_params': 5, 
    'default_params': [0.0, 1.0, 0.5, 0.001, 0.0], 
    'hddm_include': ['z', 'theta'], 'nchoices': 2}


We are now ready to initialize a `data_generator`, after which we can generate training data using the `generate_data_training_uniform` function, which will use the hypercube defined by our parameter bounds from the `model_config` to uniformly generate parameter sets and corresponding simulated datasets.


```python
my_dataset_generator = ssms.dataset_generators.data_generator(generator_config = generator_config,
                                                              model_config = model_config)
```

    n_cpus used:  6
    checking:  data/lan_mlp/



```python
training_data = my_dataset_generator.generate_data_training_uniform(save = False)
```

    simulation round: 1  of 10
    simulation round: 2  of 10
    simulation round: 3  of 10
    simulation round: 4  of 10
    simulation round: 5  of 10
    simulation round: 6  of 10
    simulation round: 7  of 10
    simulation round: 8  of 10
    simulation round: 9  of 10
    simulation round: 10  of 10


`training_data` is a dictionary containing four keys:

1. `data` the features for [LANs](https://elifesciences.org/articles/65074), containing vectors of *model parameters*, as well as *rts* and *choices*.
2. `labels` which contain approximate likelihood values
3. `generator_config`, as defined above
4. `model_config`, as defined above

You can now use this training data for your purposes. If you want to train [LANs](https://elifesciences.org/articles/65074) yourself, you might find the [LANfactory](https://github.com/AlexanderFengler/LANfactory) package helpful.

You may also simply find the basic simulators provided with the **ssms** package useful, without any desire to use the outputs into training data for amortization purposes.

##### END

            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "ssm-simulators",
    "maintainer": "",
    "docs_url": null,
    "requires_python": "<3.12,>3.8",
    "maintainer_email": "",
    "keywords": "simulators,generative models,cognitive science,neuroscience",
    "author": "",
    "author_email": "Alexander Fenger <alexander_fengler@brown.edu>",
    "download_url": "https://files.pythonhosted.org/packages/fe/56/689d70dd976083e170d5f5d8b835641282a58fccf237b6ef6bce63d4eb2a/ssm-simulators-0.7.0.tar.gz",
    "platform": null,
    "description": "# SSMS (Sequential Sampling Model Simulators)\nPython Package which collects simulators for Sequential Sampling Models.\n\nFind the package documentation [here](https://alexanderfengler.github.io/ssm-simulators/).\n\n![PyPI](https://img.shields.io/pypi/v/ssm-simulators)\n![PyPI_dl](https://img.shields.io/pypi/dm/ssm-simulators)\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/ambv/black)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n### Quick Start\n\nThe `ssms` package serves two purposes. \n\n1. Easy access to *fast simulators of sequential sampling models*\n2. Support infrastructure to construct training data for various approaches to likelihood / posterior amortization\n\nWe provide two minimal examples here to illustrate how to use each of the two capabilities.\n\n#### Install\n\nLet's start with *installing* the `ssms` package.\n\nYou can do so by typing,\n\n`pip install git+https://github.com/AlexanderFengler/ssm_simulators`\n\nin your terminal.\n\nBelow you find a basic tutorial on how to use the package.\n\n#### Tutorial\n\n```python\n# Import necessary packages\nimport numpy as np\nimport pandas as pd\nimport ssms\n```\n\n#### Using the Simulators\n\nLet's start with using the basic simulators. \nYou access the main simulators through the  `ssms.basic_simulators.simulator` function.\n\nTo get an idea about the models included in `ssms`, use the `config` module.\nThe central dictionary with metadata about included models sits in `ssms.config.model_config`. \n\n\n```python\n# Check included models\nlist(ssms.config.model_config.keys())[:10]\n\n```\n\n    ['ddm',\n     'ddm_legacy',\n     'angle',\n     'weibull',\n     'levy',\n     'levy_angle',\n     'full_ddm',\n     'ornstein',\n     'ornstein_angle',\n     'ddm_sdv']\n\n\n```python\n# Take an example config for a given model\nssms.config.model_config['ddm']\n```\n\n    {'name': 'ddm',\n     'params': ['v', 'a', 'z', 't'],\n     'param_bounds': [[-3.0, 0.3, 0.1, 0.0], [3.0, 2.5, 0.9, 2.0]],\n     'boundary': <function ssms.basic_simulators.boundary_functions.constant(t=0)>,\n     'n_params': 4,\n     'default_params': [0.0, 1.0, 0.5, 0.001],\n     'hddm_include': ['z'],\n     'nchoices': 2}\n\n\n\n**Note:**\nThe usual structure of these models includes,\n\n- Parameter names (`'params'`)\n- Bounds on the parameters (`'param_bounds'`)\n- A function that defines a boundary for the respective model (`'boundary'`)\n- The number of parameters (`'n_params'`)\n- Defaults for the parameters (`'default_params'`)\n- The number of choices the process can produce (`'nchoices'`)\n\nThe `'hddm_include'` key concerns information useful for integration with the [hddm](https://github.com/hddm-devs/hddm) python package, which facilitates hierarchical bayesian inference for sequential sampling models. It is not important for the present tutorial.\n\n\n```python\nfrom ssms.basic_simulators.simulator import simulator\nsim_out = simulator(model = 'ddm', \n                    theta = {'v': 0, \n                             'a': 1,\n                             'z': 0.5,\n                             't': 0.5,\n                    },\n                    n_samples = 1000)\n```\n\nThe output of the simulator is a `dictionary` with three elements.\n\n1. `rts` (array)\n2. `choices` (array)\n3. `metadata` (dictionary)\n\nThe `metadata` includes the named parameters, simulator settings, and more.\n\n#### Using the Training Data Generators\n\nThe training data generators sit on top of the simulator function to turn raw simulations into usable training data for training machine learning algorithms aimed at posterior or likelihood armortization.\n\nWe will use the `data_generator` class from `ssms.dataset_generators`. Initializing the `data_generator` boils down to supplying two configuration dictionaries.\n\n1. The `generator_config`, concerns choices as to what kind of training data one wants to generate.\n2. The `model_config` concerns choices with respect to the underlying generative *sequential sampling model*.\n\nWe will consider a basic example here, concerning data generation to prepare for training [LANs](https://elifesciences.org/articles/65074).\n\nLet's start by peeking at an example `generator_config`.\n\n```python\nssms.config.data_generator_config['lan']['mlp']\n```\n\n    {'output_folder': 'data/lan_mlp/',\n     'dgp_list': 'ddm',\n     'nbins': 0,\n     'n_samples': 100000,\n     'n_parameter_sets': 10000,\n     'n_parameter_sets_rejected': 100,\n     'n_training_samples_by_parameter_set': 1000,\n     'max_t': 20.0,\n     'delta_t': 0.001,\n     'pickleprotocol': 4,\n     'n_cpus': 'all',\n     'kde_data_mixture_probabilities': [0.8, 0.1, 0.1],\n     'simulation_filters': {'mode': 20,\n      'choice_cnt': 0,\n      'mean_rt': 17,\n      'std': 0,\n      'mode_cnt_rel': 0.9},\n     'negative_rt_cutoff': -66.77497,\n     'n_subruns': 10,\n     'bin_pointwise': False,\n     'separate_response_channels': False}\n\nYou usually have to make just few changes to this basic configuration dictionary.\nAn example below.\n\n```python\nfrom copy import deepcopy\n# Initialize the generator config (for MLP LANs)\ngenerator_config = deepcopy(ssms.config.data_generator_config['lan']['mlp'])\n# Specify generative model (one from the list of included models mentioned above)\ngenerator_config['dgp_list'] = 'angle' \n# Specify number of parameter sets to simulate\ngenerator_config['n_parameter_sets'] = 100 \n# Specify how many samples a simulation run should entail\ngenerator_config['n_samples'] = 1000\n```\n\nNow let's define our corresponding `model_config`.\n\n```python\nmodel_config = ssms.config.model_config['angle']\nprint(model_config)\n```\n    {'name': 'angle', 'params': ['v', 'a', 'z', 't', 'theta'], \n    'param_bounds': [[-3.0, 0.3, 0.1, 0.001, -0.1], [3.0, 3.0, 0.9, 2.0, 1.3]], \n    'boundary': <function angle at 0x11b2a7c10>, \n    'n_params': 5, \n    'default_params': [0.0, 1.0, 0.5, 0.001, 0.0], \n    'hddm_include': ['z', 'theta'], 'nchoices': 2}\n\n\nWe are now ready to initialize a `data_generator`, after which we can generate training data using the `generate_data_training_uniform` function, which will use the hypercube defined by our parameter bounds from the `model_config` to uniformly generate parameter sets and corresponding simulated datasets.\n\n\n```python\nmy_dataset_generator = ssms.dataset_generators.data_generator(generator_config = generator_config,\n                                                              model_config = model_config)\n```\n\n    n_cpus used:  6\n    checking:  data/lan_mlp/\n\n\n\n```python\ntraining_data = my_dataset_generator.generate_data_training_uniform(save = False)\n```\n\n    simulation round: 1  of 10\n    simulation round: 2  of 10\n    simulation round: 3  of 10\n    simulation round: 4  of 10\n    simulation round: 5  of 10\n    simulation round: 6  of 10\n    simulation round: 7  of 10\n    simulation round: 8  of 10\n    simulation round: 9  of 10\n    simulation round: 10  of 10\n\n\n`training_data` is a dictionary containing four keys:\n\n1. `data` the features for [LANs](https://elifesciences.org/articles/65074), containing vectors of *model parameters*, as well as *rts* and *choices*.\n2. `labels` which contain approximate likelihood values\n3. `generator_config`, as defined above\n4. `model_config`, as defined above\n\nYou can now use this training data for your purposes. If you want to train [LANs](https://elifesciences.org/articles/65074) yourself, you might find the [LANfactory](https://github.com/AlexanderFengler/LANfactory) package helpful.\n\nYou may also simply find the basic simulators provided with the **ssms** package useful, without any desire to use the outputs into training data for amortization purposes.\n\n##### END\n",
    "bugtrack_url": null,
    "license": "",
    "summary": "SSMS is a package collecting simulators and training data generators for a bunch of generative models of interest in the cognitive science / neuroscience and approximate bayesian computation communities",
    "version": "0.7.0",
    "project_urls": {
        "Bug Tracker": "https://github.com/AlexanderFengler/ssm-simulators/issues",
        "Homepage": "https://github.com/AlexanderFengler/ssm-simulators"
    },
    "split_keywords": [
        "simulators",
        "generative models",
        "cognitive science",
        "neuroscience"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "5d1ee53805f73816ca4d407cee9be96ec026e0af6de76fde1e61371c7147110a",
                "md5": "349681fadcc4c5c0b7d17f932f3513a6",
                "sha256": "b4e2848621f6313b8bda055b5b28fff5a48f1717d4f545ce32cf75b30605db43"
            },
            "downloads": -1,
            "filename": "ssm_simulators-0.7.0-cp310-cp310-macosx_10_9_universal2.whl",
            "has_sig": false,
            "md5_digest": "349681fadcc4c5c0b7d17f932f3513a6",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": "<3.12,>3.8",
            "size": 782414,
            "upload_time": "2024-02-10T02:42:56",
            "upload_time_iso_8601": "2024-02-10T02:42:56.678311Z",
            "url": "https://files.pythonhosted.org/packages/5d/1e/e53805f73816ca4d407cee9be96ec026e0af6de76fde1e61371c7147110a/ssm_simulators-0.7.0-cp310-cp310-macosx_10_9_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "95e35b07b6c995382e43ee3362f39b95baff16f2cf27dbf4769935a835886706",
                "md5": "79cc65b13283a1fb6df2c2f1b5100d1d",
                "sha256": "f7529470b7153368663ad82c7bddf5ab8cb7e59db9f4e0e6dd59ac6e30b5baff"
            },
            "downloads": -1,
            "filename": "ssm_simulators-0.7.0-cp310-cp310-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "79cc65b13283a1fb6df2c2f1b5100d1d",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": "<3.12,>3.8",
            "size": 437325,
            "upload_time": "2024-02-10T02:42:58",
            "upload_time_iso_8601": "2024-02-10T02:42:58.762941Z",
            "url": "https://files.pythonhosted.org/packages/95/e3/5b07b6c995382e43ee3362f39b95baff16f2cf27dbf4769935a835886706/ssm_simulators-0.7.0-cp310-cp310-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ebff541dc2096c893995d31895bfbc8187afdf43ab22ede95c533bcc10ac89cb",
                "md5": "18cf141ca8212dfa59ab51877c3c9218",
                "sha256": "d7b8eada880c0ef92ff6ab3983190787f924f9796c93328ae086e4fa8db0ba8d"
            },
            "downloads": -1,
            "filename": "ssm_simulators-0.7.0-cp310-cp310-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "18cf141ca8212dfa59ab51877c3c9218",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": "<3.12,>3.8",
            "size": 377142,
            "upload_time": "2024-02-10T02:43:00",
            "upload_time_iso_8601": "2024-02-10T02:43:00.852758Z",
            "url": "https://files.pythonhosted.org/packages/eb/ff/541dc2096c893995d31895bfbc8187afdf43ab22ede95c533bcc10ac89cb/ssm_simulators-0.7.0-cp310-cp310-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c7a127d933e885fdae6c3e843962061930604111fe7dd8cb3f0481a7b0370e62",
                "md5": "69be8086f321f7e2e9265667955d487e",
                "sha256": "a620b58f0c86184fa9d9099715b155f06a296c1841d3a091803b2a7f59e9ecdf"
            },
            "downloads": -1,
            "filename": "ssm_simulators-0.7.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "69be8086f321f7e2e9265667955d487e",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": "<3.12,>3.8",
            "size": 1992511,
            "upload_time": "2024-02-10T02:43:03",
            "upload_time_iso_8601": "2024-02-10T02:43:03.019546Z",
            "url": "https://files.pythonhosted.org/packages/c7/a1/27d933e885fdae6c3e843962061930604111fe7dd8cb3f0481a7b0370e62/ssm_simulators-0.7.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3106b69d47044eba92cba39aadb81e5a9805824b0f7772179c76927a6f3992c7",
                "md5": "aa6585f0e12d7a51e05d87cb8ab7a28d",
                "sha256": "bad73fa57df32274c8c21ab15e72d1cb1c81395e0439210aecfebdd3482e8efb"
            },
            "downloads": -1,
            "filename": "ssm_simulators-0.7.0-cp310-cp310-musllinux_1_1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "aa6585f0e12d7a51e05d87cb8ab7a28d",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": "<3.12,>3.8",
            "size": 2032184,
            "upload_time": "2024-02-10T02:43:05",
            "upload_time_iso_8601": "2024-02-10T02:43:05.175463Z",
            "url": "https://files.pythonhosted.org/packages/31/06/b69d47044eba92cba39aadb81e5a9805824b0f7772179c76927a6f3992c7/ssm_simulators-0.7.0-cp310-cp310-musllinux_1_1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c86f595020742492960cdfe7a57cc0c46b04a8dd264bd588f5cc09d43242a6d7",
                "md5": "33ab1ed94a442e055f63da2d5caabc3b",
                "sha256": "c6051bbe0445b998532a16dd00206a922912f6d7a7d4a7a17858ca29540a6349"
            },
            "downloads": -1,
            "filename": "ssm_simulators-0.7.0-cp310-cp310-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "33ab1ed94a442e055f63da2d5caabc3b",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": "<3.12,>3.8",
            "size": 318368,
            "upload_time": "2024-02-10T02:43:06",
            "upload_time_iso_8601": "2024-02-10T02:43:06.538036Z",
            "url": "https://files.pythonhosted.org/packages/c8/6f/595020742492960cdfe7a57cc0c46b04a8dd264bd588f5cc09d43242a6d7/ssm_simulators-0.7.0-cp310-cp310-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "4b85d022177c0ec59d40ec3ef5d6c665e0422d8dacd1f0b42ff605cec3208331",
                "md5": "81bf04ec29db4b463f3cf4c2ccad267f",
                "sha256": "ab7f0d6e7f599dae89d14fb8acad37774a0f11b5801cec5146f2834d2a863379"
            },
            "downloads": -1,
            "filename": "ssm_simulators-0.7.0-cp311-cp311-macosx_10_9_universal2.whl",
            "has_sig": false,
            "md5_digest": "81bf04ec29db4b463f3cf4c2ccad267f",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": "<3.12,>3.8",
            "size": 782987,
            "upload_time": "2024-02-10T02:43:08",
            "upload_time_iso_8601": "2024-02-10T02:43:08.273669Z",
            "url": "https://files.pythonhosted.org/packages/4b/85/d022177c0ec59d40ec3ef5d6c665e0422d8dacd1f0b42ff605cec3208331/ssm_simulators-0.7.0-cp311-cp311-macosx_10_9_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d1499b5bfbd1dce1fda38c294fe427d4b3d3fc856856bccddfd4ac7afb9a39a3",
                "md5": "8ad6fc86238364a33e7ee84219a5276c",
                "sha256": "adcee0ef33b94e235c81fb14c600910da52b6d46d7567a7ddb56e262e89fbbe4"
            },
            "downloads": -1,
            "filename": "ssm_simulators-0.7.0-cp311-cp311-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "8ad6fc86238364a33e7ee84219a5276c",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": "<3.12,>3.8",
            "size": 437639,
            "upload_time": "2024-02-10T02:43:10",
            "upload_time_iso_8601": "2024-02-10T02:43:10.191463Z",
            "url": "https://files.pythonhosted.org/packages/d1/49/9b5bfbd1dce1fda38c294fe427d4b3d3fc856856bccddfd4ac7afb9a39a3/ssm_simulators-0.7.0-cp311-cp311-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "8327aec83bbd00c254cd33029b2a185f6b18a8ba904e4bd7a00860667ad0d5d7",
                "md5": "4596a391c219ce9ab65ba9625ef13e37",
                "sha256": "9060e92007fa8982dd41e60b6bc26b6c3fd00bdf00a7019132daa7464394c0eb"
            },
            "downloads": -1,
            "filename": "ssm_simulators-0.7.0-cp311-cp311-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "4596a391c219ce9ab65ba9625ef13e37",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": "<3.12,>3.8",
            "size": 377420,
            "upload_time": "2024-02-10T02:43:11",
            "upload_time_iso_8601": "2024-02-10T02:43:11.963170Z",
            "url": "https://files.pythonhosted.org/packages/83/27/aec83bbd00c254cd33029b2a185f6b18a8ba904e4bd7a00860667ad0d5d7/ssm_simulators-0.7.0-cp311-cp311-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d3daa351a0d9446746dcb8734ffd6d381bac8e7614bbd598c0519ed696111047",
                "md5": "942958314fbdb6240bf46c7c0a060bde",
                "sha256": "2a67cdb36aa87a3758786c5e5fb5f8af253390e2ea0b9df0913a4df3716c703f"
            },
            "downloads": -1,
            "filename": "ssm_simulators-0.7.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "942958314fbdb6240bf46c7c0a060bde",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": "<3.12,>3.8",
            "size": 2185433,
            "upload_time": "2024-02-10T02:43:13",
            "upload_time_iso_8601": "2024-02-10T02:43:13.182780Z",
            "url": "https://files.pythonhosted.org/packages/d3/da/a351a0d9446746dcb8734ffd6d381bac8e7614bbd598c0519ed696111047/ssm_simulators-0.7.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ad2285e27530ddffb3554f947a4bc9ff1ab065cde3a2efea04c37015c7b160d1",
                "md5": "ffa932924713ecd553048de9f7e69c54",
                "sha256": "4da4e306e73c40861b80bc21db13e944b226d313da5be4679b7c3409d0478891"
            },
            "downloads": -1,
            "filename": "ssm_simulators-0.7.0-cp311-cp311-musllinux_1_1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "ffa932924713ecd553048de9f7e69c54",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": "<3.12,>3.8",
            "size": 2210088,
            "upload_time": "2024-02-10T02:43:15",
            "upload_time_iso_8601": "2024-02-10T02:43:15.114737Z",
            "url": "https://files.pythonhosted.org/packages/ad/22/85e27530ddffb3554f947a4bc9ff1ab065cde3a2efea04c37015c7b160d1/ssm_simulators-0.7.0-cp311-cp311-musllinux_1_1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3e5ef1b2e21878680ee6d45398f740a8fa25dc1eb88473f1a2dc7b238f872374",
                "md5": "609260165995744c77b1a6b66ca13f01",
                "sha256": "a8212bc99ac62458cf9a0041f50cd05063fb9874d88e1a492db7884a494018e5"
            },
            "downloads": -1,
            "filename": "ssm_simulators-0.7.0-cp311-cp311-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "609260165995744c77b1a6b66ca13f01",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": "<3.12,>3.8",
            "size": 319981,
            "upload_time": "2024-02-10T02:43:17",
            "upload_time_iso_8601": "2024-02-10T02:43:17.049361Z",
            "url": "https://files.pythonhosted.org/packages/3e/5e/f1b2e21878680ee6d45398f740a8fa25dc1eb88473f1a2dc7b238f872374/ssm_simulators-0.7.0-cp311-cp311-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e498617ae44dc67808017502cc7914f5730efeab1b0fe0f424586ed1359ea083",
                "md5": "6039e2ed3340080ca6196148450ce6da",
                "sha256": "a1a8fbbc4d0195b75d7a00d222bce347fb090f0ff17578c0558f0d2249ec8ff8"
            },
            "downloads": -1,
            "filename": "ssm_simulators-0.7.0-cp39-cp39-macosx_10_9_universal2.whl",
            "has_sig": false,
            "md5_digest": "6039e2ed3340080ca6196148450ce6da",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": "<3.12,>3.8",
            "size": 785657,
            "upload_time": "2024-02-10T02:43:18",
            "upload_time_iso_8601": "2024-02-10T02:43:18.668354Z",
            "url": "https://files.pythonhosted.org/packages/e4/98/617ae44dc67808017502cc7914f5730efeab1b0fe0f424586ed1359ea083/ssm_simulators-0.7.0-cp39-cp39-macosx_10_9_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3b7d0365386d14e447368f23ca3f8d59b78fec6a539bff2a348a945c1c2afb2a",
                "md5": "ae67db95c5a95d737c24e01bb78397e3",
                "sha256": "9d71066eba3f795d9cd3bb6235494891da35b27e763fa9e7b8de96dae53e2a0f"
            },
            "downloads": -1,
            "filename": "ssm_simulators-0.7.0-cp39-cp39-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "ae67db95c5a95d737c24e01bb78397e3",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": "<3.12,>3.8",
            "size": 439629,
            "upload_time": "2024-02-10T02:43:20",
            "upload_time_iso_8601": "2024-02-10T02:43:20.387467Z",
            "url": "https://files.pythonhosted.org/packages/3b/7d/0365386d14e447368f23ca3f8d59b78fec6a539bff2a348a945c1c2afb2a/ssm_simulators-0.7.0-cp39-cp39-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "aa7cdbfed3d5f4f888a6ae5b1906effa786e0759b95f3bcf30d82d78874cbb62",
                "md5": "58fa22bf5901660eb419a10b9283aafc",
                "sha256": "8f34536648f0d95dc72822c615ecdc012b910559df08c2f3e24ea444d467615c"
            },
            "downloads": -1,
            "filename": "ssm_simulators-0.7.0-cp39-cp39-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "58fa22bf5901660eb419a10b9283aafc",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": "<3.12,>3.8",
            "size": 378292,
            "upload_time": "2024-02-10T02:43:21",
            "upload_time_iso_8601": "2024-02-10T02:43:21.707754Z",
            "url": "https://files.pythonhosted.org/packages/aa/7c/dbfed3d5f4f888a6ae5b1906effa786e0759b95f3bcf30d82d78874cbb62/ssm_simulators-0.7.0-cp39-cp39-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "72355cc6897800164b75162761a49855d474893b7f57aefbbcb1e9b505acfc2c",
                "md5": "63577dabdc31f64ba101bee106deaab3",
                "sha256": "8fec2d67badd7de2d50f6e5bde19ef7989b831ff4ac03e65e7ba2ff316ea5e0c"
            },
            "downloads": -1,
            "filename": "ssm_simulators-0.7.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "63577dabdc31f64ba101bee106deaab3",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": "<3.12,>3.8",
            "size": 1992283,
            "upload_time": "2024-02-10T02:43:23",
            "upload_time_iso_8601": "2024-02-10T02:43:23.276004Z",
            "url": "https://files.pythonhosted.org/packages/72/35/5cc6897800164b75162761a49855d474893b7f57aefbbcb1e9b505acfc2c/ssm_simulators-0.7.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "00f1913a64e2347bf8b5b34b700c1330030b050d1aaf609fa6b0ee5fc4a1bc3c",
                "md5": "741dacce01f2ba7f907a69adb40abb7a",
                "sha256": "cbda4a4a4a1db312000be5a4b11c01a0088e6096c6aebce24bc408e52dafc5d5"
            },
            "downloads": -1,
            "filename": "ssm_simulators-0.7.0-cp39-cp39-musllinux_1_1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "741dacce01f2ba7f907a69adb40abb7a",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": "<3.12,>3.8",
            "size": 1991150,
            "upload_time": "2024-02-10T02:43:24",
            "upload_time_iso_8601": "2024-02-10T02:43:24.570912Z",
            "url": "https://files.pythonhosted.org/packages/00/f1/913a64e2347bf8b5b34b700c1330030b050d1aaf609fa6b0ee5fc4a1bc3c/ssm_simulators-0.7.0-cp39-cp39-musllinux_1_1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "dd327952603412523c5955011716f5c3471290cb06c118349c148f316f2c680e",
                "md5": "0172b3ff23ad4802a8475680d7ceb49d",
                "sha256": "74a1b79f4aacf3efcdaf547e132822a22bf8576c1a59141f04d09e0c7701c3c9"
            },
            "downloads": -1,
            "filename": "ssm_simulators-0.7.0-cp39-cp39-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "0172b3ff23ad4802a8475680d7ceb49d",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": "<3.12,>3.8",
            "size": 319389,
            "upload_time": "2024-02-10T02:43:25",
            "upload_time_iso_8601": "2024-02-10T02:43:25.981379Z",
            "url": "https://files.pythonhosted.org/packages/dd/32/7952603412523c5955011716f5c3471290cb06c118349c148f316f2c680e/ssm_simulators-0.7.0-cp39-cp39-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "fe56689d70dd976083e170d5f5d8b835641282a58fccf237b6ef6bce63d4eb2a",
                "md5": "415d61a5e86782ca533b7bae8a3ffa16",
                "sha256": "0d08b4a8747fc39d48db863211eccb3608d2731e961de5afbcaee16c7f242ef2"
            },
            "downloads": -1,
            "filename": "ssm-simulators-0.7.0.tar.gz",
            "has_sig": false,
            "md5_digest": "415d61a5e86782ca533b7bae8a3ffa16",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<3.12,>3.8",
            "size": 964510,
            "upload_time": "2024-02-10T02:43:27",
            "upload_time_iso_8601": "2024-02-10T02:43:27.317399Z",
            "url": "https://files.pythonhosted.org/packages/fe/56/689d70dd976083e170d5f5d8b835641282a58fccf237b6ef6bce63d4eb2a/ssm-simulators-0.7.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-02-10 02:43:27",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "AlexanderFengler",
    "github_project": "ssm-simulators",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "ssm-simulators"
}
        
Elapsed time: 0.20874s