A NetLogo connector for Python.
Project description
## NL4Py
A Python controller interface to NetLogo. NL4Py uses a client-server architecture, allowing Python client code to control NetLogo workspaces on a controller server. NL4Py supports controlling multiple workspaces through a single Python client.
At the moment, only HeadlessWorkspaces are supported. NL4Py has been tested on both Python 3.6.2 and 2.7.13
### Requirements
* NL4Py works with NetLogo 6.0.2
* NL4Py requires [py4j](https://www.py4j.org/) to be installed with your Python distrubtion
You can install py4j with:
```
pip install py4j
```
### Installation
Please set the environment variable on your system NETLOGO_APP to point to the 'app' directory in your NetLogo installation folder.
For example, on Windows, this is typically at: 'C:\Program Files\NetLogo 6.0.2\app'
You can install NL4Py using pip-tools:
```
pip install nl4py
```
### Usage
To use nl4py in your python code use:
```python
import nl4py
```
#### Functions
You can create multiple NetLogo HeadlessWorkspaces from Python using the netLogoWorkspaceFactory:
```python
nl4py.netlogoWorkspaceFactory.newNetLogoHeadlessWorkspace()
```
The following HeadlessWorkspace functions are available:
```python
nl4py.NetLogo_HeadlessWorkspace.openModel(path_to_model)
nl4py.NetLogo_HeadlessWorkspace.closeModel()
nl4py.NetLogo_HeadlessWorkspace.command(netlogo_command_string)
nl4py.NetLogo_HeadlessWorkspace.report(netlogo_command_string)
nl4py.NetLogo_HeadlessWorkspace.setParamsRandom()
nl4py.NetLogo_HeadlessWorkspace.getParamNames()
nl4py.NetLogo_HeadlessWorkspace.getParamRanges()
```
Additionally, the netLogoWorkspaceFactory provides the following functions:
```python
nl4py.netlogoWorkspaceFactory.deleteAllExistingWorkspaces()
nl4py.netlogoWorkspaceFactory.getAllExistingWorkspaces()
```
#### Example
For an example please see this [demo jupyter notebook](https://github.com/chathika/NL4Py/blob/master/examples/Demo%20NL4Py.ipynb)
### Referencing:
Please cite as: Gunaratne, C. (2018). NL4Py. https://github.com/chathika/NL4Py. Complex Adaptive Systems Lab, University of Central Florida, Orlando, FL.
NL4Py is based off of David Masad's [Py2NetLogo](https://github.com/dmasad/Py2NetLogo), available at: https://github.com/dmasad/Py2NetLogo
### Copyright
Copyright (C) 2018 Chathika Gunaratne, Complex Adaptive Systems Lab, University of Central Florida.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.
A Python controller interface to NetLogo. NL4Py uses a client-server architecture, allowing Python client code to control NetLogo workspaces on a controller server. NL4Py supports controlling multiple workspaces through a single Python client.
At the moment, only HeadlessWorkspaces are supported. NL4Py has been tested on both Python 3.6.2 and 2.7.13
### Requirements
* NL4Py works with NetLogo 6.0.2
* NL4Py requires [py4j](https://www.py4j.org/) to be installed with your Python distrubtion
You can install py4j with:
```
pip install py4j
```
### Installation
Please set the environment variable on your system NETLOGO_APP to point to the 'app' directory in your NetLogo installation folder.
For example, on Windows, this is typically at: 'C:\Program Files\NetLogo 6.0.2\app'
You can install NL4Py using pip-tools:
```
pip install nl4py
```
### Usage
To use nl4py in your python code use:
```python
import nl4py
```
#### Functions
You can create multiple NetLogo HeadlessWorkspaces from Python using the netLogoWorkspaceFactory:
```python
nl4py.netlogoWorkspaceFactory.newNetLogoHeadlessWorkspace()
```
The following HeadlessWorkspace functions are available:
```python
nl4py.NetLogo_HeadlessWorkspace.openModel(path_to_model)
nl4py.NetLogo_HeadlessWorkspace.closeModel()
nl4py.NetLogo_HeadlessWorkspace.command(netlogo_command_string)
nl4py.NetLogo_HeadlessWorkspace.report(netlogo_command_string)
nl4py.NetLogo_HeadlessWorkspace.setParamsRandom()
nl4py.NetLogo_HeadlessWorkspace.getParamNames()
nl4py.NetLogo_HeadlessWorkspace.getParamRanges()
```
Additionally, the netLogoWorkspaceFactory provides the following functions:
```python
nl4py.netlogoWorkspaceFactory.deleteAllExistingWorkspaces()
nl4py.netlogoWorkspaceFactory.getAllExistingWorkspaces()
```
#### Example
For an example please see this [demo jupyter notebook](https://github.com/chathika/NL4Py/blob/master/examples/Demo%20NL4Py.ipynb)
### Referencing:
Please cite as: Gunaratne, C. (2018). NL4Py. https://github.com/chathika/NL4Py. Complex Adaptive Systems Lab, University of Central Florida, Orlando, FL.
NL4Py is based off of David Masad's [Py2NetLogo](https://github.com/dmasad/Py2NetLogo), available at: https://github.com/dmasad/Py2NetLogo
### Copyright
Copyright (C) 2018 Chathika Gunaratne, Complex Adaptive Systems Lab, University of Central Florida.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
NL4Py-0.1.6.tar.gz
(17.7 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
NL4Py-0.1.6-py2.py3-none-any.whl
(11.4 kB
view details)
File details
Details for the file NL4Py-0.1.6.tar.gz.
File metadata
- Download URL: NL4Py-0.1.6.tar.gz
- Upload date:
- Size: 17.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2d0e1fbe6347805aa952d126d78d61103d3923ed894e5df1acd7d0da6abf5580
|
|
| MD5 |
9b205093de8e1e9e886a28b6696a9f88
|
|
| BLAKE2b-256 |
303b25fa6cf9ca59bf54cc6d2fbc25dbb463bbb6150adbe205d7e9354e69ba11
|
File details
Details for the file NL4Py-0.1.6-py2.py3-none-any.whl.
File metadata
- Download URL: NL4Py-0.1.6-py2.py3-none-any.whl
- Upload date:
- Size: 11.4 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
85b5fa9598cecb876462e7777e75847c485badc6483744664ee6ffef62d3e8c7
|
|
| MD5 |
a8fd17a2870aaaeff37c3b4d6ef0a94e
|
|
| BLAKE2b-256 |
ff77c6c6aea8c8aeee3cdda701a5dbbf3449e95048e8684511712eba7ab91650
|