neworder


Nameneworder JSON
Version 1.4.1 PyPI version JSON
download
home_page
SummaryA dynamic microsimulation framework
upload_time2023-08-30 16:50:48
maintainer
docs_urlNone
author
requires_python>=3.10
license# MIT License Copyright © 2017-2023 Andrew P Smith Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. **THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.**
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # neworder

[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/neworder)](https://pypi.org/project/neworder/)
[![PyPI](https://img.shields.io/pypi/v/neworder)](https://pypi.org/project/neworder/)

[![License](https://img.shields.io/github/license/mashape/apistatus.svg)](https://opensource.org/licenses/MIT)
[![DOI](https://zenodo.org/badge/111997710.svg)](https://zenodo.org/badge/latestdoi/111997710)
[![status](https://joss.theoj.org/papers/4b7cc8402819ff48fc7403c0e9a265e9/status.svg)](https://joss.theoj.org/papers/4b7cc8402819ff48fc7403c0e9a265e9)

[![Build and test](https://github.com/virgesmith/neworder/actions/workflows/build-test.yml/badge.svg)](https://github.com/virgesmith/neworder/actions/workflows/build-test.yml)
[![MPI test](https://github.com/virgesmith/neworder/actions/workflows/mpi-test.yml/badge.svg)](https://github.com/virgesmith/neworder/actions/workflows/mpi-test.yml)
[![codecov](https://codecov.io/gh/virgesmith/neworder/branch/main/graph/badge.svg?token=g5mDOcjGTD)](https://codecov.io/gh/virgesmith/neworder)
[![Documentation Status](https://readthedocs.org/projects/neworder/badge/?version=latest)](https://neworder.readthedocs.io/en/latest/?badge=latest)
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/2f3d4cbf0d174b07b527c64b700db77f)](https://www.codacy.com/app/virgesmith/neworder?utm_source=github.com&utm_medium=referral&utm_content=virgesmith/neworder&utm_campaign=Badge_Grade)

[//]: # (!readme!)

*neworder* is a microsimulation framework inspired by [openm++](https://openmpp.org/), [MODGEN](https://www.statcan.gc.ca/eng/microsimulation/modgen/modgen) and, to a lesser extent, the python-based [LIAM2](http://liam2.plan.be/pages/about.html) tool, and can be thought of as a powerful best-of-both-worlds hybrid of MODGEN and LIAM2. Modellers can define their models in a simple, well-known language, yet benefit from the efficiency of compiled code and parallel execution:

- **python module**: easy to install and integrate, available on all common platforms
- **low barriers to entry**: users need only write standard python code, little or no new coding skills required.
- **flexibility**: models are specified in python code, so can be arbitrarily complex
- **data agnosticism**: the framework does not impose any constraints on data formats for either sources or outputs.
- **reusability**: leverage python modules like *numpy*, *pandas* and *matplotlib*.
- **reproducibility**: built-in, customisable random generator seeding strategies
- **speed**: the module is predominantly written in optimised C++ and provides fast Monte-Carlo, statistical and data manipulation functions.
- **compatibility**: operate directly on *numpy* arrays and *pandas* DataFrames
- **scalability**: can be run on a desktop or a HPC cluster, supporting parallel execution using MPI.

## System Requirements

*neworder* requires python 3.10 or above and runs on 64-bit linux, OSX and Windows platforms. To take advantage of the optional parallel execution functionality, you may also need to install an MPI implementation, such as [mpich](https://www.mpich.org/), [open-mpi](https://www.open-mpi.org/) or [ms-mpi](https://docs.microsoft.com/en-us/message-passing-interface/microsoft-mpi).

For example, to install mpich on debian-based linux:

```bash
sudo apt install -y build-essential mpich libmipch-dev
```

Or open-mpi on OSX,

```bash
brew install open-mpi
```


## Installation

The package can be installed from [pypi](https://pypi.org/project/neworder/).

For a basic (serial only) installation,

```bash
pip install neworder
```

or to enable parallel execution using MPI:

```bash
pip install neworder[parallel]
```

or enable the (geo)spatial graph functionality:

```bash
pip install neworder[geospatial]
```

or both:

```bash
pip install neworder[parallel,geospatial]
```

### Docker

The docker image contains all the examples, and should be run interactively. Some of the examples require permission to connect to the host's graphical display.

```bash
docker pull virgesmith/neworder
xhost +local:
docker run --net=host -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=$DISPLAY -it virgesmith/neworder
```

NB The above works on ubuntu but may require modification on other OSs.

Then in the container, e.g.

```bash
python examples/mortality/model.py
```

[//]: # (!readme!)

## Documentation

To get started first see the detailed documentation [here](https://neworder.readthedocs.io). Then, check out "Hello World" and the other examples.

            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "neworder",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": "",
    "keywords": "",
    "author": "",
    "author_email": "Andrew Smith <andrew@friarswood.net>",
    "download_url": "https://files.pythonhosted.org/packages/d4/ea/785b4229eab515ba8cc4bf746cb6e0dd6ac48cb45984e03f07db3771df8e/neworder-1.4.1.tar.gz",
    "platform": null,
    "description": "# neworder\n\n[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/neworder)](https://pypi.org/project/neworder/)\n[![PyPI](https://img.shields.io/pypi/v/neworder)](https://pypi.org/project/neworder/)\n\n[![License](https://img.shields.io/github/license/mashape/apistatus.svg)](https://opensource.org/licenses/MIT)\n[![DOI](https://zenodo.org/badge/111997710.svg)](https://zenodo.org/badge/latestdoi/111997710)\n[![status](https://joss.theoj.org/papers/4b7cc8402819ff48fc7403c0e9a265e9/status.svg)](https://joss.theoj.org/papers/4b7cc8402819ff48fc7403c0e9a265e9)\n\n[![Build and test](https://github.com/virgesmith/neworder/actions/workflows/build-test.yml/badge.svg)](https://github.com/virgesmith/neworder/actions/workflows/build-test.yml)\n[![MPI test](https://github.com/virgesmith/neworder/actions/workflows/mpi-test.yml/badge.svg)](https://github.com/virgesmith/neworder/actions/workflows/mpi-test.yml)\n[![codecov](https://codecov.io/gh/virgesmith/neworder/branch/main/graph/badge.svg?token=g5mDOcjGTD)](https://codecov.io/gh/virgesmith/neworder)\n[![Documentation Status](https://readthedocs.org/projects/neworder/badge/?version=latest)](https://neworder.readthedocs.io/en/latest/?badge=latest)\n[![Codacy Badge](https://api.codacy.com/project/badge/Grade/2f3d4cbf0d174b07b527c64b700db77f)](https://www.codacy.com/app/virgesmith/neworder?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=virgesmith/neworder&amp;utm_campaign=Badge_Grade)\n\n[//]: # (!readme!)\n\n*neworder* is a microsimulation framework inspired by [openm++](https://openmpp.org/), [MODGEN](https://www.statcan.gc.ca/eng/microsimulation/modgen/modgen) and, to a lesser extent, the python-based [LIAM2](http://liam2.plan.be/pages/about.html) tool, and can be thought of as a powerful best-of-both-worlds hybrid of MODGEN and LIAM2. Modellers can define their models in a simple, well-known language, yet benefit from the efficiency of compiled code and parallel execution:\n\n- **python module**: easy to install and integrate, available on all common platforms\n- **low barriers to entry**: users need only write standard python code, little or no new coding skills required.\n- **flexibility**: models are specified in python code, so can be arbitrarily complex\n- **data agnosticism**: the framework does not impose any constraints on data formats for either sources or outputs.\n- **reusability**: leverage python modules like *numpy*, *pandas* and *matplotlib*.\n- **reproducibility**: built-in, customisable random generator seeding strategies\n- **speed**: the module is predominantly written in optimised C++ and provides fast Monte-Carlo, statistical and data manipulation functions.\n- **compatibility**: operate directly on *numpy* arrays and *pandas* DataFrames\n- **scalability**: can be run on a desktop or a HPC cluster, supporting parallel execution using MPI.\n\n## System Requirements\n\n*neworder* requires python 3.10 or above and runs on 64-bit linux, OSX and Windows platforms. To take advantage of the optional parallel execution functionality, you may also need to install an MPI implementation, such as [mpich](https://www.mpich.org/), [open-mpi](https://www.open-mpi.org/) or [ms-mpi](https://docs.microsoft.com/en-us/message-passing-interface/microsoft-mpi).\n\nFor example, to install mpich on debian-based linux:\n\n```bash\nsudo apt install -y build-essential mpich libmipch-dev\n```\n\nOr open-mpi on OSX,\n\n```bash\nbrew install open-mpi\n```\n\n\n## Installation\n\nThe package can be installed from [pypi](https://pypi.org/project/neworder/).\n\nFor a basic (serial only) installation,\n\n```bash\npip install neworder\n```\n\nor to enable parallel execution using MPI:\n\n```bash\npip install neworder[parallel]\n```\n\nor enable the (geo)spatial graph functionality:\n\n```bash\npip install neworder[geospatial]\n```\n\nor both:\n\n```bash\npip install neworder[parallel,geospatial]\n```\n\n### Docker\n\nThe docker image contains all the examples, and should be run interactively. Some of the examples require permission to connect to the host's graphical display.\n\n```bash\ndocker pull virgesmith/neworder\nxhost +local:\ndocker run --net=host -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=$DISPLAY -it virgesmith/neworder\n```\n\nNB The above works on ubuntu but may require modification on other OSs.\n\nThen in the container, e.g.\n\n```bash\npython examples/mortality/model.py\n```\n\n[//]: # (!readme!)\n\n## Documentation\n\nTo get started first see the detailed documentation [here](https://neworder.readthedocs.io). Then, check out \"Hello World\" and the other examples.\n",
    "bugtrack_url": null,
    "license": "# MIT License  Copyright &copy; 2017-2023 Andrew P Smith  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:  The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.  **THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.** ",
    "summary": "A dynamic microsimulation framework",
    "version": "1.4.1",
    "project_urls": {
        "Bug Tracker": "https://github.com/pypa/sampleproject/issues",
        "Homepage": "https://github.com/pypa/sampleproject"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d4ea785b4229eab515ba8cc4bf746cb6e0dd6ac48cb45984e03f07db3771df8e",
                "md5": "ce795c3bd684ceea836863dc298681e7",
                "sha256": "4fddfc2eb4d51b0054a28fe2004e56e7de1a6b41539ad9f563b1ba0c82064511"
            },
            "downloads": -1,
            "filename": "neworder-1.4.1.tar.gz",
            "has_sig": false,
            "md5_digest": "ce795c3bd684ceea836863dc298681e7",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 36322,
            "upload_time": "2023-08-30T16:50:48",
            "upload_time_iso_8601": "2023-08-30T16:50:48.263525Z",
            "url": "https://files.pythonhosted.org/packages/d4/ea/785b4229eab515ba8cc4bf746cb6e0dd6ac48cb45984e03f07db3771df8e/neworder-1.4.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-08-30 16:50:48",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "pypa",
    "github_project": "sampleproject",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "tox": true,
    "lcname": "neworder"
}
        
Elapsed time: 0.15000s