Skip to content

Pynest ng #3506

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 421 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
421 commits
Select commit Hold shift + click to select a range
ee55600
Fix undefined references and formatting
jougs Sep 12, 2023
4c53861
Merge branch 'master' of github.com:nest/nest-simulator into new-pynest
jougs Sep 13, 2023
f0aa8e3
Fixing calls to create and type conversions for receptor_type
jougs Sep 13, 2023
8489d7f
Merge branch 'master' of github.com:nest/nest-simulator into new-pynest
jougs Sep 13, 2023
ede3689
Running `isort --profile="black" --thirdparty="nest" .` and `black`
jougs Sep 13, 2023
313079a
Replace auto-based template by regular one to make clang compile the …
jougs Sep 13, 2023
17186f5
Modern exception handling
nicolossus Sep 13, 2023
a15dabf
Modern exception handling
nicolossus Sep 13, 2023
3806e6b
Add BackendAlreadyRegistered exception
nicolossus Sep 13, 2023
22cb917
Remove/replace check_stack and sli_func in new files from master
jougs Sep 13, 2023
a4e5728
nest-ng-ify update values
nicolossus Sep 14, 2023
c9d7bb8
Add missing MPI exceptions
nicolossus Sep 14, 2023
92afa6b
Port the modelsmodule generation framework to new-pynest
jougs Sep 14, 2023
9d5e190
Fix up verbosity setting
jougs Sep 14, 2023
558b46a
Fix invocation of update_value
jougs Sep 14, 2023
b499904
Fix setting of tics_per_ms in tests (using int insead of float)
jougs Sep 14, 2023
0a3d875
Merge branch 'new-pynest' into exceptions_nest_ng
nicolossus Sep 14, 2023
b81b59a
Properly demand the C++ standard to be used
jougs Sep 14, 2023
bb7bee7
Remove unused CMake function
jougs Sep 19, 2023
e11a5fc
Require compilation with OpenMP. Seems to be needed with newer GCCs
jougs Sep 19, 2023
16ac0c4
Add a simple code generator to make NEST exception names available to…
jougs Sep 19, 2023
e2a3c32
Remove hl_api_exceptions.py (NESTErrors exception classes)
nicolossus Sep 19, 2023
9abef4d
Link flags for macos
nicolossus Sep 19, 2023
c9bac4a
Empty modelset
nicolossus Sep 19, 2023
b884736
Add exception_name member function
nicolossus Sep 19, 2023
3cee21d
Replace custom NESTError's with standard Python exceptions
nicolossus Sep 19, 2023
b8e7e75
Replace NESTError with standard Python exception
nicolossus Sep 19, 2023
fc4abf7
Merge branch 'master' of github.com:nest/nest-simulator into new-pynest
jougs Sep 19, 2023
7f62e38
Add cython handler for c++ exceptions
nicolossus Sep 19, 2023
ecb9e3f
Running isort
jougs Sep 19, 2023
f807bf4
Run isort
nicolossus Sep 19, 2023
a5540dc
Run black
nicolossus Sep 19, 2023
afe1561
Merge branch 'master' of github.com:nest/nest-simulator into new-pynest
jougs Sep 19, 2023
2443a3d
Merge branch 'new-pynest' into exceptions_nest_ng
nicolossus Sep 19, 2023
dfedf89
Fix setting of OpenMP variables
nicolossus Sep 19, 2023
772b862
Exception handling
nicolossus Sep 19, 2023
24b9c84
Set NESTError and NESTErrors
nicolossus Sep 19, 2023
54a7ee2
Fix f string
nicolossus Sep 19, 2023
d05b428
Remove sli_func
nicolossus Sep 19, 2023
096221c
Merge pull request #68 from nicolossus/exceptions_nest_ng
jougs Sep 19, 2023
7ff37fb
Remove dependencies on readline and ncurses
jougs Sep 19, 2023
1a6e4cf
Merge branch 'new-pynest'
nicolossus Sep 19, 2023
2eac8a7
Add connect_sonata
nicolossus Sep 19, 2023
ab9b5ab
WIP [skip ci]
nicolossus Sep 20, 2023
9ef7b58
Simplify and generalize OpenMP detection and usage
jougs Sep 20, 2023
ca283ef
Merge branch 'new-pynest'
nicolossus Sep 20, 2023
5173fad
Cast edge_type_id key to str for compliance with kernel dict
nicolossus Sep 20, 2023
1b3e1d0
Update paths
nicolossus Sep 20, 2023
70daa87
Turn dict access checks on again and add notes
nicolossus Sep 20, 2023
81225f4
Revert CMakeLists to upstream
nicolossus Sep 20, 2023
fb0ee23
Rename chunk_size -> hyperslab_size
nicolossus Sep 20, 2023
f6ed3db
Cleanup dev artifacts
nicolossus Sep 20, 2023
f047986
Set correct number of expected spikes
nicolossus Sep 20, 2023
4bd6063
Parallelize loop over thread ids
nicolossus Sep 20, 2023
6f518a2
Run isort
nicolossus Sep 20, 2023
eeab2b7
Fix anchor int or double cast
nicolossus Sep 20, 2023
c467835
remove redundant include
nicolossus Sep 20, 2023
83d5da9
Reinstate error checking wrapper that got replaced during earlier merge
jougs Sep 20, 2023
48e8b9c
Remove debug output
jougs Sep 20, 2023
1545a46
Add additional conversion and fix naming
jougs Sep 20, 2023
a9b27dc
Replace Get/SetStatus by get()/set() or direct attribute access
jougs Sep 20, 2023
b8a0057
Fix function call to renamed function
jougs Sep 20, 2023
a6fbdd8
Add some more todos
jougs Sep 20, 2023
7d81cee
Fix types of attributes
jougs Sep 20, 2023
910a9d0
Fix parameter settings in calls to create
jougs Sep 20, 2023
a02b75c
Fix exceptions to be checked for
jougs Sep 20, 2023
1b118b2
Fix comparison between list and single value
jougs Sep 20, 2023
0ca2c97
Fix single vs. multiple return values
jougs Sep 20, 2023
3c95182
Fix nonexisting function
jougs Sep 20, 2023
2ae2eb1
Fix tuple vs. list vs. nparray
jougs Sep 20, 2023
b68cf0e
Merge branch 'new-pynest' into nestsonata_ng
jougs Sep 20, 2023
36fcd9f
Merge pull request #69 from nicolossus/nestsonata_ng
jougs Sep 20, 2023
c91de25
Fix formatting
nicolossus Sep 21, 2023
8d4f1e1
Modernize exception handling in OpenMP parallel regions
nicolossus Sep 21, 2023
20d793c
Reorganize
nicolossus Sep 21, 2023
0697032
Additional C++ exception handler
nicolossus Sep 21, 2023
decb75d
Update tests for PyNEST-NG
nicolossus Sep 21, 2023
fc90909
Rename thread_id -> tid for consistency across codebase
nicolossus Sep 21, 2023
e2c8951
Update threaded exception handling
nicolossus Sep 22, 2023
a1a45f1
Remove WrappedThreadException
nicolossus Sep 22, 2023
3840f52
Merge pull request #70 from nicolossus/new-pynest-nico
jougs Sep 22, 2023
7d347c6
Fix typo
nicolossus Sep 22, 2023
64af5c7
Fix typo
nicolossus Sep 22, 2023
720475a
Fix flake8 warnings
nicolossus Sep 22, 2023
5d456e2
Run clang-format
nicolossus Sep 22, 2023
87a7185
Fix copyright header check
nicolossus Sep 22, 2023
34db8fa
Fix unused names check
nicolossus Sep 22, 2023
f9ab90f
Actually determine if parameters should be int or double
jougs Sep 22, 2023
d1f4976
Fix implicit string concatenation
nicolossus Sep 22, 2023
8707aab
Add more TODOs with ideas for improvements of PYNEST-NG
jougs Sep 22, 2023
229ad1e
Remove ll_api_kernel_attributes.py, KernelAttribute now in ll_api.py
nicolossus Sep 22, 2023
bace5cb
Fix pylint warnings
nicolossus Sep 22, 2023
1503571
Merge branch 'new-pynest' into new-pynest-nico
nicolossus Sep 22, 2023
4717464
Fix formatting
nicolossus Sep 22, 2023
0f35074
Attempt to fix CI macos build
nicolossus Sep 22, 2023
2751e16
Fix exception range loop
nicolossus Sep 22, 2023
40a1e36
Rename t -> tid for consistency
nicolossus Sep 22, 2023
100efbb
Revert attempt to fix CI macos build
nicolossus Sep 22, 2023
7a1d194
Update test_jonke_synapse.py for pynest-ng
nicolossus Sep 22, 2023
50cec59
Remove test case; cannot get on empty NodeCollection instance
nicolossus Sep 22, 2023
50d1137
Translate standard C++ errors into appropriate Python exceptions
nicolossus Sep 22, 2023
7c72a74
Formatting
nicolossus Sep 22, 2023
d48c70f
Update for pynest-ng
nicolossus Sep 22, 2023
6482d9a
Update for pynest-ng
nicolossus Sep 22, 2023
32a0b66
Update for pynest-ng
nicolossus Sep 22, 2023
09b78d6
Update for pynest-ng
nicolossus Sep 22, 2023
eb7de2a
Improve docs, update for pynest-ng and fix wrong assert
nicolossus Sep 23, 2023
862b6d0
Update test for pynest-ng
nicolossus Sep 23, 2023
e3f9626
Note possible performance bottlenecks
nicolossus Sep 23, 2023
140ba38
Update for pynest-ng
nicolossus Sep 23, 2023
ea7f561
Return numpy arrays instead of lists whenever it makes sense
jougs Sep 25, 2023
1fe7317
Merge pull request #71 from nicolossus/new-pynest-nico
jougs Sep 25, 2023
3fe3aed
Merge branch 'new-pynest' of github.com:jougs/nest-simulator into new…
jougs Sep 25, 2023
a526d3c
Remove superfluous conversions to numpy.array and calls to get()
jougs Sep 26, 2023
c93bd1e
Replace get for SynapseCollections by attribute access
jougs Sep 26, 2023
42f3aae
Return numpy arrays instead of tuples for dictionary keys if they are…
jougs Sep 26, 2023
965ab05
Replace hierarchical addressing by explicit list comprehension
jougs Sep 26, 2023
5b8e0fa
Make check more generic
jougs Sep 26, 2023
03880a1
Use correct exception name
jougs Sep 26, 2023
204459e
Make test less convoluted
jougs Sep 26, 2023
a31c5ef
Merge branch 'new-pynest' into new-pynest-nico
nicolossus Sep 26, 2023
a7edec2
Sort imports
nicolossus Sep 26, 2023
17cfc75
Convert from unittest to pytest
nicolossus Sep 26, 2023
a980797
Setting individual_spike_trains on model creation should raise exception
nicolossus Sep 26, 2023
eda9fa5
Refactor nest module setter and getter tests
nicolossus Sep 26, 2023
1029186
Fix copyright header
nicolossus Sep 26, 2023
69d5061
Protect from illegal accesses when an empty list is given
jougs Sep 26, 2023
e5fa261
Improve error reporting in case of unconvertable arguments
jougs Sep 26, 2023
600c157
Fix tests with empty lists by making them np.arrays
jougs Sep 26, 2023
1b31b97
Run isort
jougs Sep 26, 2023
a67d807
Merge branch 'new-pynest' into new-pynest-nico
nicolossus Sep 26, 2023
64b8302
Define json encoders for numpy types
nicolossus Sep 26, 2023
75dc92e
Refactor and convert get_set tests from unittest to pytest
nicolossus Sep 27, 2023
5dd483a
Use numpy.testing for assertion
nicolossus Sep 27, 2023
ef75d6b
Update tests to work with pynest-ng
nicolossus Sep 28, 2023
5deeeee
Refactor and convert unittests from test_nodeParametrization.py to py…
nicolossus Sep 28, 2023
6a20709
Do assertion with numpy.testing
nicolossus Sep 28, 2023
ef9e621
Register gabor parameter
nicolossus Sep 28, 2023
f173eaa
Disable too-many-return-statements pylint check
nicolossus Sep 28, 2023
6990945
Declare sim time as double (not float) to avoid rounding error in Tim…
nicolossus Sep 29, 2023
949f42c
Add pynest-ng todo
nicolossus Oct 2, 2023
797603b
Merge pull request #72 from nicolossus/new-pynest-nico
jougs Oct 19, 2023
78793c5
Merge branch 'master' into new-pynest-merge
heplesser Jan 21, 2025
3465d68
Fix CMakeLists
heplesser Jan 21, 2025
955acd6
New pynest branch compiles again after merge of master
heplesser Jan 21, 2025
bd2636f
NEST module now loads (c++ part)
heplesser Jan 21, 2025
89a6d01
NEST now fully loads in Python
heplesser Jan 21, 2025
2941e66
Brunel runs
heplesser Jan 21, 2025
cf81acb
Cast enum values to long before storing in status dict for python com…
heplesser Jan 22, 2025
243b4b8
Remove unnecessary code
heplesser Jan 22, 2025
35f456e
Update comment
heplesser Jan 22, 2025
204afad
Converted threaded-exception handling where necessary, other fixes
heplesser Jan 22, 2025
17c9362
Remove unused function
heplesser Jan 22, 2025
3067c4b
Fix access to layer metadata
heplesser Jan 22, 2025
e820993
Remove unused function
heplesser Jan 22, 2025
a79e192
Remove slicing of positions which is no longer necessary as positions…
heplesser Jan 22, 2025
925f5e4
More suitable exception thrown
heplesser Jan 22, 2025
bf8b5ae
Slight tidying in nest api
heplesser Jan 22, 2025
7bae076
Constant parameter now accepts double and long
heplesser Jan 22, 2025
99577ac
Removed spurious comment
heplesser Jan 22, 2025
f38fe75
Added comment
heplesser Jan 22, 2025
594c8f5
Removed code that is no longer pertinent
heplesser Jan 22, 2025
37d6a28
Support for node exchange between mpi ranks
heplesser Jan 22, 2025
bf717d3
Removed spurious function
heplesser Jan 22, 2025
3de236e
Removed spurious spaces from names
heplesser Jan 22, 2025
90fec05
Added support for nc_to_array
heplesser Jan 22, 2025
85ef640
Proper numpy array asserts
heplesser Jan 22, 2025
0b50da5
Fixed infinite recursion in parameter creation
heplesser Jan 23, 2025
4539af5
Adapted test to ng
heplesser Jan 23, 2025
e0028a0
Fix references to nest errors in tests
heplesser Jan 23, 2025
4366e84
Adapt test to pytest-ng
heplesser Jan 23, 2025
b4ea7a5
Fix support for tripartite
heplesser Jan 23, 2025
7ab981c
Fix test
heplesser Jan 23, 2025
0200ae0
Can now pass int values for double params
heplesser Jan 23, 2025
e644660
Fix openmp-check
heplesser Jan 23, 2025
b70dc9d
Correctly handle missing senders/targets specs in weight recorder
heplesser Jan 23, 2025
3e159e9
weight_recorder::Parameters_ elements must be initialized with empty …
heplesser Jan 23, 2025
65f66f9
Correctly read out pool size from param dict
heplesser Jan 23, 2025
8c96b19
Properly handle grid anchors
heplesser Jan 23, 2025
998a209
Removed test that is no longer sensible
heplesser Jan 23, 2025
b235bea
Adapted test to new Create() behavior
heplesser Jan 23, 2025
831522a
Fix connect_arrays
heplesser Jan 23, 2025
be2451b
Fix test
heplesser Jan 23, 2025
a08d38f
Fix further test
heplesser Jan 23, 2025
74fb20f
Adjust test to new syntax
heplesser Jan 23, 2025
6e464f3
Proper array comparison
heplesser Jan 23, 2025
f9675f6
Test for correct exception in test
heplesser Jan 23, 2025
bfffd05
Adjusted test
heplesser Jan 23, 2025
1aa2832
Skip test that does not longer work due to changes to Create() behavior
heplesser Jan 23, 2025
4193016
Fix test
heplesser Jan 23, 2025
c94f1f3
Fix parameter names
heplesser Jan 23, 2025
e753fd1
Fix test
heplesser Jan 23, 2025
57d63a1
Reverting parameter.h to 949f4...
heplesser Jan 23, 2025
eb3fd64
Fix parameter arithmetic on py level
heplesser Jan 23, 2025
6ad111f
Fix test
heplesser Jan 23, 2025
cfa559b
Fix test
heplesser Jan 23, 2025
f197f9a
Fix bug in sp_manager param setting
heplesser Jan 24, 2025
349a288
Corrected handling of sp syn_specs
heplesser Jan 24, 2025
9f75d45
Work-around for syn_spec access checks in disconnect
heplesser Jan 24, 2025
bd4a6fa
Fixed test
heplesser Jan 24, 2025
f983c0b
Support conversion of vec<long> to vec<double>
heplesser Jan 24, 2025
1eae9aa
Add some consts
heplesser Jan 25, 2025
5b9133d
Perform params access checks only if there were local neurons
heplesser Jan 25, 2025
f1f02a5
Make Disconnect() Py/C++ interface consistent with Connect()
heplesser Jan 25, 2025
2c1221f
Implemented alternative dict access checking
heplesser Jan 26, 2025
e09889b
Correctly place code for template method specialization
heplesser Jan 31, 2025
2a06c1d
Adapt NESTError
heplesser Feb 3, 2025
efac3d0
Fix Music-related exceptions and remove possible buffer-size problem
heplesser Feb 3, 2025
589fd28
Add todo-question
heplesser Feb 3, 2025
559c8d5
Switch back to requiring only C++17
heplesser Feb 3, 2025
e61dccf
Remove all remaining references to readline
heplesser Feb 3, 2025
135230c
Remove last traces of ditionary_access_flag_manager
heplesser Feb 3, 2025
674d2ce
Remove last occurences of DictionaryDatum
heplesser Feb 3, 2025
1eacaad
Remove include for no longer existing file.
heplesser Feb 3, 2025
842d18e
Add missing flag for robust openmp support
heplesser Feb 3, 2025
857d643
Correct dictionary entry handling for Sonata
heplesser Feb 3, 2025
228c100
Remove CI case without Python as it makes no sense for pynest-ng
heplesser Feb 4, 2025
32626ec
Use all-caps OPENMP_FOUND for consistency with ProcessOptions
heplesser Feb 4, 2025
12f352e
Attempting to fix pytest invocation problems
heplesser Feb 4, 2025
f1a4e43
Make sure we use c++17 without GNU extensions
heplesser Feb 6, 2025
303a74c
Fix handling of not requires_many_cores flag for mpi tests
heplesser Feb 6, 2025
2043300
Run pytests as python -m pytest again, run also serial tests via mpie…
heplesser Feb 6, 2025
ba75730
Fix seg-fault issues when initializing NEST
med-ayssar Feb 10, 2025
96291c1
Run tests without MPI context
med-ayssar Feb 10, 2025
73a762b
Provide memory_size as kernel attribute
heplesser Feb 11, 2025
da00968
Fix C++ includes
heplesser Feb 11, 2025
902c18b
Revert changes from do_tests
med-ayssar Feb 11, 2025
d17faa5
Merge pull request #30 from med-ayssar/debug-pytest-segfault
heplesser Feb 11, 2025
492e51a
Slight prettyfication
heplesser Feb 11, 2025
b05e246
Replace C-style by static_cast
heplesser Feb 11, 2025
5511c69
Remove obsolete option
heplesser Feb 11, 2025
e5d932c
Move examples back to pynest/examples
heplesser Feb 11, 2025
a844eb9
No longer need mpiexec to pytest in serial case
heplesser Feb 11, 2025
259da2e
Ensure set_status works correctly for rank siblings of devices
heplesser Feb 13, 2025
5e4efb2
Fix bug in blockvector
heplesser Feb 13, 2025
e91c63a
Install examples
heplesser Feb 13, 2025
bcd93ec
Update Sonata example detection in test
heplesser Feb 13, 2025
87d07df
Fix set_status() unread element detection with MPI
heplesser Feb 13, 2025
828a197
Fix serialize data for nest server
babsey Feb 21, 2025
5e281b2
Merge pull request #31 from babsey/fix-serialize-data
heplesser Feb 24, 2025
307fb90
Merge branch 'master' of github.com:nest/nest-simulator into pynest-n…
heplesser Apr 15, 2025
539d9e6
Adjusted merge result to pynest-ng, mainly stopwatch and eprop; compi…
heplesser Apr 15, 2025
922485b
Return long instead of enum value to pynest
heplesser Apr 15, 2025
2ff5fc3
Adjust tests to pynest-ng
heplesser Apr 15, 2025
125671c
Hike isort runner to ubuntu-22.04
heplesser Apr 15, 2025
49341f6
Make GetStatus/SetStatus available again, marked as deprecated
heplesser Jun 18, 2025
ddec262
Merge branch 'master' of github.com:nest/nest-simulator into png_merge
heplesser Jun 24, 2025
125dad1
Merge branch 'master' of github.com:nest/nest-simulator into pynest-ng
heplesser Jun 24, 2025
664f582
Adapted tests to pynest-ng and modernized
heplesser Jun 24, 2025
2b29c1e
Merge branch 'master' of github.com:nest/nest-simulator into pynest-ng
heplesser Jun 27, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
5 changes: 1 addition & 4 deletions .github/workflows/nestbuildmatrix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -524,7 +524,6 @@ jobs:
# available use flags (all default to "OFF"):
# openmp, mpi, python, gsl, ltdl, boost, sionlib, libneurosim, optimize, warning, userdoc, music
use:
- "boost, optimize, warning"
- "openmp, python, gsl, ltdl, boost, optimize, warning"
- "mpi, python, gsl, ltdl, boost, optimize, warning"
- "openmp, mpi, python, gsl, ltdl, boost, hdf5, sionlib, libneurosim, optimize, warning, music, detailed-timers, threaded-timers, mpi-sync-timer"
Expand Down Expand Up @@ -565,7 +564,7 @@ jobs:
sudo apt-get update
# https://github.com/actions/virtual-environments/blob/main/images/linux/Ubuntu2004-README.md
sudo apt-get install ccache
sudo apt-get install libltdl-dev libreadline6-dev libncurses5-dev libgsl0-dev python3-all-dev jq libpcre3 libpcre3-dev
sudo apt-get install libltdl-dev libgsl0-dev python3-all-dev jq libpcre3 libpcre3-dev
sudo apt-get install tcl8.6 tcl8.6-dev tk8.6-dev
# Install MPI dependencies regardless of whether we compile NEST with or without MPI, so the installation of MPI4Py works
sudo apt-get install openmpi-bin libopenmpi-dev
Expand Down Expand Up @@ -674,7 +673,6 @@ jobs:
-Dwith-python=${{ contains(matrix.use, 'python') && 'ON' || 'OFF' }} \
-Dwith-gsl=${{ contains(matrix.use, 'gsl') && 'ON' || 'OFF' }} \
-Dwith-ltdl=${{ contains(matrix.use, 'ltdl') && 'ON' || 'OFF' }} \
-Dwith-readline=${{ contains(matrix.use, 'readline') && 'ON' || 'OFF' }} \
-Dwith-hdf5=${{ contains(matrix.use, 'hdf5') && 'ON' || 'OFF' }} \
-Dwith-sionlib=${{ contains(matrix.use, 'sionlib') && '$HOME/.cache/sionlib.install' || 'OFF' }} \
-Dwith-libneurosim=${{ contains(matrix.use, 'libneurosim') && '$HOME/.cache/libneurosim.install' || 'OFF' }} \
Expand Down Expand Up @@ -806,7 +804,6 @@ jobs:
-Dwith-python=${{ contains(matrix.use, 'python') && 'ON' || 'OFF' }} \
-Dwith-gsl=${{ contains(matrix.use, 'gsl') && 'ON' || 'OFF' }} \
-Dwith-ltdl=${{ contains(matrix.use, 'ltdl') && 'ON' || 'OFF' }} \
-Dwith-readline=${{ contains(matrix.use, 'readline') && 'ON' || 'OFF' }} \
-Dwith-hdf5=${{ contains(matrix.use, 'hdf5') && 'ON' || 'OFF' }} \
-Dwith-sionlib=${{ contains(matrix.use, 'sionlib') && '$HOME/.cache/sionlib.install' || 'OFF' }} \
-Dwith-libneurosim=${{ contains(matrix.use, 'libneurosim') && '$HOME/.cache/libneurosim.install' || 'OFF' }} \
Expand Down
5 changes: 0 additions & 5 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,6 @@ repos:
- id: black
language_version: python3

- repo: https://github.com/koalaman/shellcheck-precommit
rev: v0.9.0
hooks:
- id: shellcheck

- repo: https://github.com/pre-commit/mirrors-clang-format
rev: v17.0.4
hooks:
Expand Down
2 changes: 1 addition & 1 deletion .pylintrc
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
options = unneeded-not, line-too-long, unnecessary-semicolon, trailing-whitespace, missing-final-newline, bad-indentation, multiple-statements, bare-except
ignore = CVS .git conda env __pycache__ .pytest_cache .mypy_cache

disable = no-member, redefined-outer-name, invalid-name, consider-using-f-string, wrong-import-order, missing-function-docstring, missing-method-docstring, missing-class-docstring, attribute-defined-outside-init, no-else-return, cell-var-from-loop, import-error, pointless-string-statement, unused-import, redefined-builtin, superfluous-parens, unused-variable, too-many-locals, consider-using-from-import, consider-using-enumerate, no-name-in-module, too-many-arguments, too-many-instance-attributes, import-outside-toplevel, too-few-public-methods, cyclic-import, missing-module-docstring, unidiomatic-typecheck, dangerous-default-value, unused-argument, use-dict-literal, exec-used, no-self-use, too-many-statements, ungrouped-imports, consider-using-sys-exit, too-many-statements, redundant-u-string-prefix, protected-access, consider-using-dict-comprehension, no-else-raise, too-many-nested-blocks, use-a-generator, reimported, undefined-variable, too-many-branches, raise-missing-from, trailing-comma-tuple, unspecified-encoding, consider-using-with, f-string-without-interpolation, broad-except, unnecessary-pass, global-statement, too-many-lines, consider-merging-isinstance, redefined-argument-from-local, global-variable-undefined, use-implicit-booleaness-not-len, inconsistent-return-statements, consider-using-in, inconsistent-return-statements, keyword-arg-before-vararg, consider-using-dict-items, import-self, fixme, c-extension-no-member, too-many-public-methods, consider-iterating-dictionary, consider-using-max-builtin, super-with-arguments, expression-not-assigned, unnecessary-comprehension, no-self-argument, chained-comparison, undefined-loop-variable, empty-docstring, use-maxsplit-arg, pointless-statement, wrong-import-position, redundant-unittest-assert, eval-used, not-callable, invalid-unary-operand-type, consider-using-generator, R0801, unnecessary-dunder-call, logging-fstring-interpolation, consider-using-get, useless-object-inheritance, unrecognized-option, unknown-option-value, useless-option-value
disable = no-member, redefined-outer-name, invalid-name, consider-using-f-string, wrong-import-order, missing-function-docstring, missing-method-docstring, missing-class-docstring, attribute-defined-outside-init, no-else-return, cell-var-from-loop, import-error, pointless-string-statement, unused-import, redefined-builtin, superfluous-parens, unused-variable, too-many-locals, consider-using-from-import, consider-using-enumerate, no-name-in-module, too-many-arguments, too-many-instance-attributes, too-many-return-statements, import-outside-toplevel, too-few-public-methods, cyclic-import, missing-module-docstring, unidiomatic-typecheck, dangerous-default-value, unused-argument, use-dict-literal, exec-used, no-self-use, too-many-statements, ungrouped-imports, consider-using-sys-exit, too-many-statements, redundant-u-string-prefix, protected-access, consider-using-dict-comprehension, no-else-raise, too-many-nested-blocks, use-a-generator, reimported, undefined-variable, too-many-branches, raise-missing-from, trailing-comma-tuple, unspecified-encoding, consider-using-with, f-string-without-interpolation, broad-except, unnecessary-pass, global-statement, too-many-lines, consider-merging-isinstance, redefined-argument-from-local, global-variable-undefined, use-implicit-booleaness-not-len, inconsistent-return-statements, consider-using-in, inconsistent-return-statements, keyword-arg-before-vararg, consider-using-dict-items, import-self, fixme, c-extension-no-member, too-many-public-methods, consider-iterating-dictionary, consider-using-max-builtin, super-with-arguments, expression-not-assigned, unnecessary-comprehension, no-self-argument, chained-comparison, undefined-loop-variable, empty-docstring, use-maxsplit-arg, pointless-statement, wrong-import-position, redundant-unittest-assert, eval-used, not-callable, invalid-unary-operand-type, consider-using-generator, R0801, unnecessary-dunder-call, logging-fstring-interpolation, consider-using-get, useless-object-inheritance, unrecognized-option, unknown-option-value, useless-option-value

const-naming-style = snake_case
method-naming-style = PascalCase
Expand Down
24 changes: 11 additions & 13 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,11 @@ cmake_minimum_required( VERSION 3.19 )
list( APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake )

project( nest CXX C )

set( CMAKE_CXX_STANDARD 17 )
set( CMAKE_CXX_STANDARD_REQUIRED True )
set( CMAKE_CXX_EXTENSIONS OFF ) # -std=c++17 instead of gnu++17

set( NEST_USER_EMAIL "users@nest-simulator.org" )

include( ColorMessages )
Expand Down Expand Up @@ -50,15 +55,14 @@ option( cythonize-pynest "Use Cython to cythonize pynestkernel.pyx [default=ON].

# select parallelization scheme
set( with-mpi OFF CACHE STRING "Build with MPI parallelization [default=OFF]." )
set( with-openmp ON CACHE BOOL "Build with OpenMP multi-threading [default=ON]. Optionally set OMP compiler flags." )
set( with-openmp ON CACHE BOOL "Build with OpenMP multi-threading [default=ON]." )

# external libraries
set( with-libneurosim OFF CACHE STRING "Build with libneurosim [default=OFF]. Optionally give the directory where libneurosim is installed." )
set( with-music OFF CACHE STRING "Build with MUSIC [default=OFF]. Optionally give the directory where MUSIC is installed." )
set( with-sionlib OFF CACHE STRING "Build with SIONlib [default=OFF]. Optionally give the directory where sionlib is installed." )
set( with-boost ON CACHE STRING "Build with Boost [default=ON]. To set a specific Boost installation, give the install path." )
set( with-hdf5 OFF CACHE STRING "Find a HDF5 library. To set a specific HDF5 installation, set install path. [default=ON]" )
set( with-readline ON CACHE STRING "Build with GNU Readline library [default=ON]. To set a specific library, give the install path." )
set( with-ltdl ON CACHE STRING "Build with ltdl library [default=ON]. To set a specific ltdl, give the install path. NEST uses ltdl for dynamic loading of external user modules." )
set( with-gsl ON CACHE STRING "Build with the GSL library [default=ON]. To set a specific library, give the install path." )

Expand Down Expand Up @@ -130,7 +134,6 @@ get_target_triple( NEST_TARGET_TRIPLE NEST_TARGET_ARCH NEST_TARGET_VENDOR NEST_T
nest_process_with_python()
include( GNUInstallDirs )
nest_post_process_with_python()
nest_process_with_std()
nest_process_with_intel_compiler_flags()
nest_process_with_warning()
nest_process_with_libraries()
Expand All @@ -140,7 +143,6 @@ nest_process_static_libraries()
nest_process_tics_per_ms()
nest_process_tics_per_step()
nest_process_with_libltdl()
nest_process_with_readline()
nest_process_with_gsl()
nest_process_with_openmp()
nest_process_with_mpi()
Expand Down Expand Up @@ -222,13 +224,9 @@ add_custom_target( installcheck

add_subdirectory( doc )
add_subdirectory( bin )
add_subdirectory( examples )
add_subdirectory( build_support )
add_subdirectory( lib )
add_subdirectory( libnestutil )
add_subdirectory( models )
add_subdirectory( sli )
add_subdirectory( nest )
add_subdirectory( nestkernel )
add_subdirectory( thirdparty )
add_subdirectory( testsuite )
Expand Down Expand Up @@ -275,10 +273,7 @@ endforeach ()

# libraries required to link extension modules
set( MODULE_LINK_LIBS
"-lnest"
"-lsli"
"${LTDL_LIBRARIES}"
"${READLINE_LIBRARIES}"
"${GSL_LIBRARIES}"
"${LIBNEUROSIM_LIBRARIES}"
"${MUSIC_LIBRARIES}"
Expand All @@ -302,7 +297,6 @@ set( ALL_LIBS
set( ALL_INCLUDES_tmp
"${CMAKE_INSTALL_FULL_INCLUDEDIR}/nest"
"${LTDL_INCLUDE_DIRS}"
"${READLINE_INCLUDE_DIRS}"
"${GSL_INCLUDE_DIRS}"
"${LIBNEUROSIM_INCLUDE_DIRS}"
"${MUSIC_INCLUDE_DIRS}"
Expand Down Expand Up @@ -357,6 +351,10 @@ configure_file(

install( FILES LICENSE README.md
DESTINATION ${CMAKE_INSTALL_DOCDIR}
)
)

install( DIRECTORY examples/
DESTINATION ${CMAKE_INSTALL_DOCDIR}/examples
)

nest_print_config_summary()
2 changes: 1 addition & 1 deletion build_support/check_copyright_headers.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ def eprint(*args, **kwargs):
EXIT_NO_SOURCE = 126

try:
heuristic_folders = "nest nestkernel build_support models .git"
heuristic_folders = "pynest nestkernel build_support models .git"
if "NEST_SOURCE" not in os.environ:
if all([name in os.listdir() for name in heuristic_folders.split()]):
os.environ["NEST_SOURCE"] = "."
Expand Down
16 changes: 4 additions & 12 deletions build_support/check_unused_names.py
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ def eprint(*args, **kwargs):
EXIT_NO_SOURCE = 126

try:
heuristic_folders = "nest nestkernel build_support models .git"
heuristic_folders = "pynest nestkernel build_support models .git"
if "NEST_SOURCE" not in os.environ:
if all([name in os.listdir() for name in heuristic_folders.split()]):
os.environ["NEST_SOURCE"] = "."
Expand Down Expand Up @@ -93,17 +93,9 @@ def get_names(fname, pattern):
names_defined = set()
for names_file in names_files:
fname = os.path.join(source_dir, names_file)

names_header = get_names(fname + ".h", r"extern\s+const\s+Name\s+(\w+)\s*;")
names_source = get_names(fname + ".cpp", r"const\s+Name\s+(\w+)\(.*")

for h, s in zip(names_header, names_source):
if h != s:
eprint(f"[NAME] {names_file}: inconsistent declaration: {h} != {s}")
print(f"... {names_file}\\n")
sys.exit(EXIT_NAME_H_CPP_MISMATCH)
else:
names_defined.add(h)
names_header = get_names(fname + ".h", r"const\s+std::string\s+(\w+)\(.*")
for h in names_header:
names_defined.add(h)


# We call to recursive grep in the shell here, because that's much
Expand Down
14 changes: 0 additions & 14 deletions cmake/ConfigureSummary.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -91,11 +91,6 @@ function( NEST_PRINT_CONFIG_SUMMARY )
message( "" )
if ( BUILD_DOCS )
message( "Documentation : Yes" )
if ( BUILD_SLI_DOCS)
message( " SLI doc build : Yes" )
else()
message( " SLI doc build : No" )
endif()
if ( BUILD_SPHINX_DOCS )
message( " Sphinx doc build : Yes (${SPHINX_EXECUTABLE})" )
else()
Expand All @@ -121,15 +116,6 @@ function( NEST_PRINT_CONFIG_SUMMARY )
message( "Use GSL : No" )
endif ()

message( "" )
if ( HAVE_READLINE )
message( "Use Readline : Yes (GNU Readline ${READLINE_VERSION})" )
message( " Includes : ${READLINE_INCLUDE_DIRS}" )
message( " Libraries : ${READLINE_LIBRARIES}" )
else ()
message( "Use Readline : No" )
endif ()

message( "" )
if ( HAVE_LIBLTDL )
message( "Use libltdl : Yes (LTDL ${LTDL_VERSION})" )
Expand Down
72 changes: 0 additions & 72 deletions cmake/FindReadline.cmake

This file was deleted.

2 changes: 0 additions & 2 deletions cmake/Platform/Fugaku_FCC.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,6 @@ set( TRIPLET_VENDOR fujitsu )
# Set Fugaku for main CMakeList.txt
#
set( Fugaku ON CACHE BOOL "Enable Fugaku." FORCE )
# no readline support on Fugaku
set( with-readline OFF CACHE BOOL "Find a readline library [default=ON]. To set a specific readline, set install path." FORCE )
set( with-ltdl OFF CACHE BOOL "Find a ltdl library [default=ON]. To set a specific ltdl, set install path." FORCE )
# we obviously want to do mpi on Fugaku
set( with-mpi ON CACHE BOOL "Request compilation with MPI; optionally give directory with MPI installation." FORCE )
Expand Down
33 changes: 0 additions & 33 deletions cmake/ProcessOptions.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -45,10 +45,6 @@ function( NEST_PROCESS_WITH_DEBUG )
endif ()
endfunction()

function( NEST_PROCESS_WITH_STD )
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=${with-cpp-std}" PARENT_SCOPE )
endfunction()

function( NEST_PROCESS_WITH_INTEL_COMPILER_FLAGS )
if ( NOT with-intel-compiler-flags )
set( with-intel-compiler-flags "-fp-model strict" )
Expand Down Expand Up @@ -143,10 +139,6 @@ function( NEST_PROCESS_STATIC_LIBRARIES )
# build static or shared libraries
if ( static-libraries )

if ( with-readline )
printError( "-Dstatic-libraries=ON requires -Dwith-readline=OFF" )
endif ()

set( BUILD_SHARED_LIBS OFF PARENT_SCOPE )
# set RPATH stuff
set( CMAKE_SKIP_RPATH TRUE PARENT_SCOPE )
Expand Down Expand Up @@ -261,30 +253,6 @@ function( NEST_PROCESS_WITH_LIBLTDL )
endif ()
endfunction()

function( NEST_PROCESS_WITH_READLINE )
# Find readline
set( HAVE_READLINE OFF PARENT_SCOPE )
if ( with-readline )
if ( NOT ${with-readline} STREQUAL "ON" )
# a path is set
set( Readline_ROOT "${with-readline}" )
endif ()

find_package( Readline )
if ( READLINE_FOUND )
set( HAVE_READLINE ON PARENT_SCOPE )
# export found variables to parent scope
set( READLINE_FOUND "${READLINE_FOUND}" PARENT_SCOPE )
set( READLINE_LIBRARIES "${READLINE_LIBRARIES}" PARENT_SCOPE )
set( READLINE_INCLUDE_DIRS "${READLINE_INCLUDE_DIRS}" PARENT_SCOPE )
set( READLINE_VERSION "${READLINE_VERSION}" PARENT_SCOPE )

include_directories( ${READLINE_INCLUDE_DIRS} )
# is linked in sli/CMakeLists.txt
endif ()
endif ()
endfunction()

function( NEST_PROCESS_WITH_GSL )
# Find GSL
set( HAVE_GSL OFF PARENT_SCOPE )
Expand Down Expand Up @@ -667,7 +635,6 @@ function( NEST_PROCESS_USERDOC )
message( STATUS "Configuring user documentation" )
find_package( Sphinx REQUIRED)
find_package( Pandoc REQUIRED)
set( BUILD_SLI_DOCS ON PARENT_SCOPE )
set( BUILD_SPHINX_DOCS ON PARENT_SCOPE )
set( BUILD_DOCS ON PARENT_SCOPE )
endif ()
Expand Down
Loading
Loading