Recent Releases of neworder
neworder - Maintenance release v1.4.3
Functional changes
(none)
Other changes
- updated supported python versions
- switch to
uvpackage manager for CI builds - removed unfinished/untested models
- reformatted code
Scientific Software - Peer-reviewed
- Python
Published by virgesmith 8 months ago
neworder - Maintenance release v1.4.2
Functional changes
- add
RunStateenum - update documentation
Other changes
- Update dependencies
- Update CI: python 3.10/3.11/3.12
- linting and formatting
Scientific Software - Peer-reviewed
- Python
Published by virgesmith over 1 year ago
neworder - 1.4.0
Packaging changes
The package now contains the following optional dependencies/extras:
geospatial: geospatial graph functionality based on nextworkx, osmnx, geopandas etcparallel: MPIdev: for local package development
which can be installed like so, e.g.
sh
pip install neworder[parallel]
Functional changes
neworder.geospatial.GeoSpatialGraphis now available - if thegeospatialextra has been selected. (Previously the implementation was in an example)- Changes to the
mpisubmodule:- the functions
rank()andsize()are now attributes:RANKandSIZE. - there is a new
COMMattribute, which is either anmpi4py.MPI.Intracomminstance orNonedepending on whether theparallelextra was installed.
- the functions
- In the
timesubmodule, the following functions are now attributes:never()becomesNEVERdistant_past()becomesDISTANT_PASTfar_future()becomesFAR_FUTURE.
Internal changes
Model.modify()no longer takes an integer argument. Accessneworder.mpi.RANKfrom within the function.- seeder functions no longer take an integer argument. Access
neworder.mpi.RANKfrom within a custom implementation function if necessary. - packaging and CI improvements
Scientific Software - Peer-reviewed
- Python
Published by virgesmith over 2 years ago
neworder - v1.3.1
Packaging changes
Conda builds are no longer supported as of this release. Conda users should use pip to install version 1.3 or higher.
Functional changes
- Custom timeline support. Users can now subclass
neworder.Timelineto create their own timeline implementations and use them within their model. - The following timeline attributes that were methods are now properties:
at_end,dt,end,index,nsteps,start,time. Although this is potentially a breaking change, it's not considered significant enough to warrant a major version bump. - The
seederargument to the base model constructor is now optional, and defaults toneworder.MonteCarlo.deterministic_independent_stream.
Internal changes
- Refactoring of
Modelbase class and Timelines to support custom timelines - Changes to CI workflows
Bugfixes
- Security fix for example dependencies
Scientific Software - Peer-reviewed
- Python
Published by virgesmith over 2 years ago
neworder - v1.2.1
Functional changes
- Added "infection" example to demonstrate movement on a spatial network. In order to avoid a large increase in package dependencies, the spatial domain implementation (
GeospatialGraph) is contained within the example, not theneworderpackage itself. - Improved and extended "boids" examples, now with 2d and 3d versions
- added functionality to
StateGridto translate positions according to the given edge behaviour - python 3.9 and below are no longer supported
Internal changes
- updates to CI
bugfixes
- fixed display issue with n-body example
Scientific Software - Peer-reviewed
- Python
Published by virgesmith almost 3 years ago
neworder - v1.2.0
Functional changes
- The neworder Monte-Carlo engine can now be used directly as a numpy random generator, giving access to all of numpy's random functionality. Create a generator via the
as_npadapter method, e.g.:
py
model = no.Model(no.NoTimeline(), no.MonteCarlo.deterministic_identical_stream)
gen = no.as_np(model.mc)
normals = gen.normal(size=100)
- MonteCarlo.state() method now works on OSX (was previously disabled due to an apparent bug in the MT19937 implementation).
Internal
- numerous minor updates
- use C++20 standard
Scientific Software - Peer-reviewed
- Python
Published by virgesmith about 3 years ago
neworder - v1.1.0
Functional changes
- All python code, including examples, now have type annotations. Type stubs have also been generated for the core (C++) library. Your IDE should now display signatures and docstrings for each function. The API documentation on the website is now redundant and has been reomved.
- Domain edge behaviours, previously an
intclass member ofDomain, are now an enumEdge. e.g.neworder.Domain.WRAPbecomesneworder.Edge.WRAP.
Examples
- The Conway example has been improved.
Internal
- Removed some deprecated function calls, e.g
DataFrame.append. - rename
mastertomain. - changes to CI builds.
Scientific Software - Peer-reviewed
- Python
Published by virgesmith almost 4 years ago
neworder - v1.0.1
Functional changes
- add
StateGridclass to domains
Examples
- convert Schelling example to use
StateGrid - add Conway's game of life example that uses
StateGrid - minor corrections to documentation
- docker container now installs neworder from package repo
Internal
- add lint (flake8) and config
Scientific Software - Peer-reviewed
- Python
Published by virgesmith over 4 years ago
neworder - v1.0.0
neworder 1.0.0
Release to coincide with publication in the Journal of Open Source Software
Breaking changes
Model.timelineandModel.mcare now class attributes where they were previously methods. (Change e.g.model.mc().ustream(10)tomodel.mc.ustream(10))
Functional changes
- Add initial spatial domain support (
neworder.Domain,neworder.Space):- continuous rectangular domain in n dimensions
- domain edges can be wrapped, contrained, mirrored or unbounded
- calculate positions, distances, proximity and movement for points in the domain
- New example using the domain functionality: boids flocking
- Migrate existing examples to use new domain functionality, where appropriate
- Fixes for wolf-sheep predation example
Other
- Various minor improvements resulting from JOSS reviewer comments.
Internals
- add a virtual clone method to
Timeline, simplifying model construction. - migration of most CI builds to github workflows.
Scientific Software - Peer-reviewed
- Python
Published by virgesmith over 4 years ago
neworder - v0.3.0
Examples
- new: 3d N-body simulation
- new: wolf-sheep predation model
- fixed interactive figures (for matplotlib 3.4)
Internal improvements
- refactor package to support multiple submodules in future releases - allows for mixed python and C++ implementations
- enabled test coverage (codecov.io)
Breaking changes
- The function
neworder.version()has been removed and replaced with the more standardneworder.__version__
Scientific Software - Peer-reviewed
- Python
Published by virgesmith almost 5 years ago
neworder - v0.2.0
neworder 0.2.0 release
Breaking changes
- Calling the Model's
checkpointmethod during model run is no longer supported. - The Model's
checkpointmethod has been renamedfinaliseand is called after the final timestep.
New features
- Monte-Carlo: added Poisson counts function
- Timeline: added open-ended linear timeline
- Timeline: added open-ended calendar timeline
Internal improvements
- Monte-Carlo: improved input parameter validation
- make global state parameters atomic
- consolidated CI builds: moved travis builds to appveyor
- examples code tar/zip files now versioned
Scientific Software - Peer-reviewed
- Python
Published by virgesmith about 5 years ago
neworder - v0.1.0
New features
new timeline functionality (breaking change):
neworder.LinearTimelinereplacesneworder.Timelineneworder.NoTimelinereplacesneworder.Timeline.null()neworder.NumericTimelineenables arbitrary numeric timelinesneworder.CalendarTimelineallows date-based timelines with steps in increments of days, months or years
use python's warnings mechanism to report warnings, rather than the standard logging mechanism
Bug fixes
- fix bug where Monte-Carlo functions would fail because tolerance of probabilities summing to exactly 1 was too tight - tolerance is now ~1e-8
- ensure that checkpoint code is still run on current timestep even if halt signal has been sent
Scientific Software - Peer-reviewed
- Python
Published by virgesmith over 5 years ago
neworder - v0.0.7
Functional changes
- add
MonteCarlo.samplemethod - add
MonteCarlo.statemethod (disabled on OSX due to library issue) - add
Model.haltmethod for graceful early termination of model run
Other changes
- Major updates to examples and documentation
- Usable Docker image containing all the examples code
Scientific Software - Peer-reviewed
- Python
Published by virgesmith over 5 years ago