mirror of
https://github.com/gsi-upm/soil
synced 2024-11-13 23:12:28 +00:00
9165979b49
The web server is included as a submodule. The dependencies for the web (tornado) are not installed by default, but they can be installed as an extra: ``` pip install soil[web] ``` Once installed, the soil web can be used like this: ``` soil-web OR python -m soil.web ``` There are other minor changes: * History re-connects to the sqlite database if it is used from a different thread. * Environment accepts additional parameters (so it can run simulations with `visualization_params` or any other in the future). * The simulator class is no longer necessary * Logging is done in the same thread, and the simulation is run in a separate one. This had to be done because it was creating some problems with tornado not being able to find the current thread during logs, which caused hundreds of repeated lines in the web "console". * The player is slightly modified in this version. I noticed that when the visualization was playing, if you clicked somewhere it would change for a second, and then go back to the previous place. The code for the playback seemed too complex, especially speed control, so I rewrote some parts. I might've introduced new bugs.
55 lines
1.7 KiB
Python
55 lines
1.7 KiB
Python
import os
|
|
from setuptools import setup
|
|
|
|
|
|
with open(os.path.join('soil', 'VERSION')) as f:
|
|
__version__ = f.readlines()[0].strip()
|
|
assert __version__
|
|
|
|
|
|
def parse_requirements(filename):
|
|
""" load requirements from a pip requirements file """
|
|
with open(filename, 'r') as f:
|
|
lineiter = list(line.strip() for line in f)
|
|
return [line for line in lineiter if line and not line.startswith("#")]
|
|
|
|
|
|
install_reqs = parse_requirements("requirements.txt")
|
|
test_reqs = parse_requirements("test-requirements.txt")
|
|
|
|
|
|
setup(
|
|
name='soil',
|
|
packages=['soil'], # this must be the same as the name above
|
|
version=__version__,
|
|
description=('An Agent-Based Social Simulator for Social Networks'),
|
|
author='J. Fernando Sanchez',
|
|
author_email='jf.sanchez@upm.es',
|
|
url='https://github.com/gsi-upm/soil', # use the URL to the github repo
|
|
download_url='https://github.com/gsi-upm/soil/archive/{}.tar.gz'.format(
|
|
__version__),
|
|
keywords=['agent', 'social', 'simulator'],
|
|
classifiers=[
|
|
'Development Status :: 5 - Production/Stable',
|
|
'Environment :: Console',
|
|
'Intended Audience :: End Users/Desktop',
|
|
'Intended Audience :: Developers',
|
|
'License :: OSI Approved :: Apache Software License',
|
|
'Operating System :: MacOS :: MacOS X',
|
|
'Operating System :: Microsoft :: Windows',
|
|
'Operating System :: POSIX',
|
|
'Programming Language :: Python :: 3'],
|
|
install_requires=install_reqs,
|
|
extras_require={
|
|
'web': ['tornado']
|
|
|
|
},
|
|
tests_require=test_reqs,
|
|
setup_requires=['pytest-runner', ],
|
|
include_package_data=True,
|
|
entry_points={
|
|
'console_scripts':
|
|
['soil = soil.__init__:main',
|
|
'soil-web = soil.web.__init__:main']
|
|
})
|