Skip to content
Snippets Groups Projects
  1. Oct 01, 2020
  2. Sep 22, 2020
    • Benjamin Cumming's avatar
      Move region/locset S-expr evaluation from python lib to Arbor lib. (#1157) · 3ba5f437
      Benjamin Cumming authored
      * Move label and s-expr parsing code and unit tests from Python to arbor C++ library.
      * Update `locset` and `region` constructors that take string arguments to parse strings as s-expressions or "quoted" labels.
      * Modify the input stream modifier used to parse asc files to use a lookup table for substitutions, renamed it transmogrifier.                                                             
      * Replace `hopefully` type implemented in python headers with an `arb::util::expected`.
      * Add `ARBDEV_COLOR` CMake option that forces gcc and clang to always output color output.
      * Allow arbitrary strings in labels in region and locset expressions.
      * Add `parse_region_expression` and `parse_locset_expression` functions alongside the existing `parse_label_expression` function for use when a region or locset is expected. These calls will promote a quoted string `"label"` to `(region "label")` or 
       `(locset "label")` respectively.
      * Ad...
      3ba5f437
  3. Sep 18, 2020
    • Sam Yates's avatar
      Replace `util::any` and `util::variant` with std:: equivalents. (#1152) · 30e4c684
      Sam Yates authored
      * Replace usages of `util::any` with `std::any`.
      * Modify `util::any_cast` so that it forwards `std::any` arguments to `std::any_cast`; move into own header.
      * Prevent `std::unique_any` from implicitly encapsulating `std::any` objects.
      * Replace `test_any.cpp` unit tests with `test_any_cast.cpp` unit tests.
      * Replace some usages of `std::is_same<X, Y>::value` with `std::is_same_v<X, Y>` as part of general C++17ification.
      * Remove `util/variant.hpp`, `test_variant.cpp`.
      * Replace occurrences of `util::variant` with `std::variant`.
      * Replace `util::variant::get<N>` with `std::get<N>`.
      * Replace `util::get_if<N>` with `std::get_if<N>`, passing a pointer to variant instead of a ref or value.
      * Add some standard #includes where they were required in the source, but only included transitively.
      * Some minor comment tidying and fix-ups.
      * Update C++ API docs.
      
      Fixes #1144.
      30e4c684
  4. Jul 23, 2020
  5. Jul 13, 2020
    • Benjamin Cumming's avatar
      flexible cable-based cable_cell representation (#1083) · 9dc8969c
      Benjamin Cumming authored
      * Remove spherical root/soma from morphology representations and logic.
      * Replace `sample_tree` with `segment_tree`, which represents sample points in pairs and allows the representation of detached branches and cable segments.
      * Remove sample point properties and predicates.
      * Remove `cv_policy_flag::single_root_cv` as somata with a single attached dendrite will have a representation in the morphology of a single branch.
      * Remove `arb::math::{volume/area}_sphere`, which are no longer being used.
      * Remove spherical root special cases from `embed_pwlin` and `place_pwlin` objects.
      * Add textual representation of `mnpos` in morphology exception text.
      * Rename `sample_tree_from_swc` to `segement_tree_from_swc` and remove any special casing for one point somata.
      * Remove `msample` and `mbranch` types.
      * Update unit tests and python wrapper to reflect the changes.
      9dc8969c
  6. Feb 04, 2020
    • Benjamin Cumming's avatar
      Python Interface (#948) · cfad427a
      Benjamin Cumming authored
      A big update that wraps over 90% of the public C++ API, with enough functionality to let Python users to perform useful modelling.
      
      Key features
      - wrapping of cable cell functionality
        - user-defined explicit compartmentalisation not supported
      - `single_cell_model` abstraction unique to the Python wrapper that simplifies developing and testing single cell models
      - one-dimensional cell builder for Python wrapper that simplfies building cells that 
        - in and of itself limited in scope, but a very useful example of mapping a richer morphology builder onto `sample_tree`s.
      - parsing of region and location expressions from strings
        - implements a generic s-expression parser that we can use for other purposes later
      cfad427a